May
7th,
2017
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开发,框架使用,请Google之或参考相关官网。