前言
记录在阅读简明python教程中的一些关键内容。
私以为,该书适合有一定编程基础,并且有面向对象编程经验的人初学。
数
在python中有四中类型的数—整数, 长整数,浮点数和复数
字符串
可以使用,单引号,双引号,三引号,三引号可以指示一个多行的字符串
字符串是不可变的
按字面意义级连字符串
例如,‘are you ok’‘?’,会被自动转为‘are you ok?’
python没有char类型数据
使用自然字符串处理正则表达式。
如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自
然字符串。自然字符串通过给字符串加上前缀r或R来指定。
标识符
以字母或者下划线开头,其他部分由字母,下划线或者数字组成。
数据类型
基本数据类型为数和字符串,当然可以用基本类型构造属于我们自己的类型。
运算符
1 | + 加 |
控制流
if else
if expression:
elif expression
else:
while
while expression:
for
for i in range(1,5)
函数
函数形参
def printMax(a,b):
全局变量
global 关键字
默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的
话,这些参数就使用默认值。
例如:1
2
3
4
5
6#!/usr/bin/python
# Filename: func_default.py
def myprint(message, times = 1):
print message * times
myprint('Hello')
myprint('World', 5)
只有在形参表末尾的那些参数可以有默认参数值
def func(a, b=5)有效,而def func(a=5, b)无效
关键参数
如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参
数赋值1
2
3
4
5
6
7#!/usr/bin/python
# Filename: func_key.py
def func(a, b=5, c=10):
print 'a is', a, 'and b is', b, 'and c is', c
func(3, 7)
func(25, c=24)
func(c=50, a=100)
输出
$ python func_key.py
a is 3 and b is 7 and c is 10
a is 25 and b is 5 and c is 24
a is 100 and b is 5 and c is 50
docstrings
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,
从第三行开始是详细的描述。1
2
3
4
5
6
7
8
9
10#!/usr/bin/python
def docStringTest(message):
''' Hello,this is the test function.
let us get start'''
print message
docStringTest('test messge')
print docStringTest.__doc__
输出:
test messge
Hello,this is the test function.
let us get start
数据结构
列表
元组
字典
序列
引用
面向对象编程
self
self等价于java中的this
你有一个不需要参数的对象方法,你还是得给这个方法定义一个self参数
init
在创建对象的实例时,会把参数传给init方法
继承
class Student(SchoolMember):
—Python不会自动调用基本类的constructor,你得亲自专门调用它。
因此,在子类的init函数中,需要调用基类的init
存储器 pickle
cPickle比pickle快1000倍1
2
3
4
5
6
7
8
9
10shoplist = ['apple', 'mango', 'carrot']
# Write to the file
f = file(shoplistfile, 'w')
p.dump(shoplist, f) # dump the object to a file
f.close()
del shoplist # remove the shoplist
# Read back from the storage
f = file(shoplistfile)
storedlist = p.load(f)
print storedlist
异常
捕捉异常
try:
except:errortype
except:
引发异常
class MyException(Exception):
‘’’A user-defined exception class.’’’
def init(self, length, atleast):
Exception.init(self)
self.length = length
self.atleast = atleast
raise MyException(3,3)
try finally
try:
finally:
finally中的语句,无论异常发生与否都会执行
python标准库
sys
包含系统对应的功能
os
包含普遍的操作系统功能
比如获取当前目录
其他内容
特殊方法
init(self,…) 新建对象要被返回使用之前被调用
del(self)在对象要被删除之前调用
str(self)在对对象使用print或是使用str()的时候调用
lt当使用小于运算符时调用,类似的,+,》等都有特殊的方法
len(self)对序列对象使用内建的()函数时调用
列表综合
1 | #!/usr/bin/python |
输出:
[6, 8]
使其中所有大于2的数都是原来的2倍
在函数中接收元组和列表
由于在args变量前有前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的
是*前缀,多余的参数则会被认为是一个字典的键/值对。
lambda 形式
lambda语句被用来创建新的函数对象
注:是否类似c语言里的函数指针
exec 和eval语句
exec语句用来执行储存在字符串或文件中的Python语句。
eval语句用来计算存储在字符串中的有效Python表达式。