Python基础知识实例讲解

Python作为一种面向对象、解释型计算机程序设计语言,语法简洁而清晰,具有丰富和强大的类库,在网站开发,数据处理,网络编程,图形处理,网络爬虫、机器学习、科学计算、自动化测试、系统运维等方面应用广泛。也正是由于Python开发简洁、优雅、开发效率高,它能够在很多地方替代java、C++等语言从而提高程序猿编程效率。作为程序猿,掌握这样一门便捷的编程语言来作为工具显得十分必要。本文主要参考了“极客学院”相关Python入门视频教程,对Python基础入门知识进行了整合,采用代码实例展现的方式,语法知识全部体现在代码中,简洁明了易于理解;本文主要包括三个Python module,分别是hellopython.py、mylib.py、stackqueue.py,涵盖了Python数据类型,常量变量,判断循环,函数,类和对象,模块,数据结构等知识(Python开发编辑器为PyCharm)

hellopython.py

该模块为主模块,负责实现大部分Python基础语法及其测试,从该模块我们看到几乎所有的Python基础句法的使用方法

代码:

# coding=UTF-8
__author__ = 'xiaoyong'

from math import *
from stackqueue import *
from mylib import Hi
from collections import Counter
from itertools import combinations

import mylib
import sys

class HelloPy:
    def helloPy(self, param):
        '''文档字符串:该函数用于测试变量定义,判断语句

        循环语句'''
        # 定义变量
        global globalVar
        globalVar = 10
        var1 = 10
        var2 = 20
        var3 = var1 + var2
        print(var3)

        # 判断语句
        if param >= 60:
            print("{0} > 60".format(param))
        elif param > 0:
            print("{0} > 0".format(param))
        else:
            print("{0} < 60 && 0 > {1}").format(param, "param")

        # 循环语句
        for i in range(0, 10, 2):
            print(i)

        var4 = 0
        while var4 < 3:
            print(var4)
            var4 += 1
        else:
            print("else var4={0}".format(var4))


# 形参设置默认初始值
def fuc1(a, b=1, c=2):
    print(a);print(b);print(c)


def fuc2(a, b=1):
    print(a)
    return b


def fuc3():
    return (1, 2, 3)

# Python常用tips 
def fuc_python_tips():
    print('\nPython常用tips: ')
    # 交换变量
    var1 = 0
    var2 = 1
    var1, var2 = var2, var1
    print var1, var2
    # if语句在行内
    print('hello') if 1 != 1 else 'world'
    print('hello' + str(var1))
    # 数字技巧
    print 5.0 // 2, 5.0 / 2, 2 ** 5, .3 / .1, .3 // .1
    var3 = 2
    if 1 < var3 < 3:
        print(var3)
    # 列表迭代
    list1 = ['a', 'b', 'c']
    list2 = ['d', 'e', 'f']
    for a, b in zip(list1, list2):
        print a + " vs " + b
    for index, a in enumerate(list1):
        print index, a
    list3 = [0] * 3
    list3.append(2)
    print(list3)
    # 列表-->字符串
    print(','.join(list1))
    # 获取列表子集
    x = [1, 2, 3, 4, 5, 6]
    # 前3个
    print x[:3]
    # 中间4个
    print x[1:5]
    # 最后3个
    print x[-3:]
    # 奇数项
    print x[::2]
    # 偶数项
    print x[1::2]
    # 统计单个字母数目
    print Counter('hello')
    # 列出所有组合方式
    for t in combinations(x, 2):
        print(t)

# python标识符首字符只能是下划线或者字母,其他部分可以是下划线、字母、数字;标识符对大小写敏感

print(sys.version);
print ("模块名:{0}").format(__name__)
print(pi)
help(HelloPy.helloPy)
# 列出模块定义的标识符,标识符有函数、类和变量
print dir(sys)
print(HelloPy.helloPy.__doc__)

# 引用mylib.py模块调用函数
h = mylib.Hello("mylib")
h.sayHello()

h1 = Hi("mylib")
h1.sayHi()

h2 = HelloPy()
h2.helloPy(15)
# 全局变量
print(globalVar)

fuc1(b=2, a=3)
var1 = fuc2(2, 3)
print(var1)
var2 = fuc3()
print(var2)
m1, m2, m3 = fuc3()
print("{0} {1} {2}".format(m1, m2, m3))

fuc_python_tips()

# 引号
str1 = 'It is a "dog"'
str2 = "It's a dog"
str3 = '''she
I
you'''
print("{0}  {1}".format(str1, str2))

# 字符串重复输出
print(str3) * 3

# 转义符
print('It\'s a dog\nyou are not')
print"women\
doushihaohaizi"

# 自然字符串
print(r"It's a dog \n you are not")

# 子字符串,索引和切片两种方式
print(str1[1]);print(str1[0:3]);print(str1[:3]);print(str1[3:]);

# set,求两个set的& | - 重复元素
print("\n集合 列表 元组 字典测试:")
var3 = set('aaabbc')
# 集合中不能有重复元素
newVar = set(var3)
print(newVar)
# 列表,数据可以修改
students = ["a", 'b', "c"]
print(students[1])

# 元组,数据不可修改
students = ("a", 'b', "c")
print(students[1])

# 字典
dic = {'姓名': 'xiaoyong', "性别": "男"}
dic['兴趣'] = '音乐'
print(dic['兴趣'])
print(dic.get('姓名'))

# 栈测试
print("\n栈测试:")
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.length())
print(stack.isEmpty())
print(stack.top())
stack.pop()
print(stack.top())

# 队列测试
print("\n队列测试:")
queue = Queue()
queue.enQueue(1)
queue.enQueue(2)
queue.enQueue(3)
print(queue.length())
print(queue.isEmpty())
print(queue.head())
print(queue.tail())
queue.deQueue()
print(queue.head())
print(queue.tail())

mylib.py

该模块为引用模块,实现两个类,Hello为父类,Hi为子类

代码:

# coding=UTF-8
__author__ = 'xiaoyong'

class Hello:
    def __init__(self, name):
        self._name = name

    def sayHello(self):
        print("class Hello: sayHello")
        print ("模块名:{0}").format(__name__)

# 类的继承
class Hi(Hello):
    def __init__(self, name):
        Hello.__init__(self, name)

    def sayHi(self):
        print("class Hi: sayHi")

stackqueue.py

该模块为引用模块,Stack和Queue类分别实现栈和队列两种数据结构

代码:

# coding= utf-8
__author__ = 'xiaoyong'


# 栈实现
class Stack(object):
    def __init__(self):
        self.stack = []

    def push(self, item):
        self.stack.append(item)

    def pop(self):
        if self.stack != []:
            return self.stack.pop(-1)
        else:
            return None

    def top(self):
        if self.stack != []:
            return self.stack[-1]
        else:
            return None

    def length(self):
        return len(self.stack)

    def isEmpty(self):
        return self.stack == []


# 队列实现
class Queue(object):
    def __init__(self):
        self.queue = []

    def enQueue(self, item):
        self.queue.append(item)

    def deQueue(self):
        if self.queue != []:
            return self.queue.pop(0)
        else:
            return None

    def head(self):
        if self.queue != []:
            return self.queue[0]
        else:
            return None

    def tail(self):
        if self.queue != []:
            return self.queue[-1]
        else:
            return None

    def length(self):
        return len(self.queue)

    def isEmpty(self):
        return self.queue == []

结语

以上三个模块基本涵盖了Python所有基本语法的使用,仅作参考查询之用;如需深入学习Python相关知识,比如RESTful API开发,web2Py,Flask等框架使用,请Google之或参考相关官网。