#参数中 [param] 表示可不写的参数,文件中 '.' 号表示当前目录,'..'表示上层目录,'~'表示根目录
Python基础:python中所有变量都是基于类的,内置函数不需要导入任何模块即可直接使用,应尽量使用内置函数。dir(__builtins__)查看内置函数。其中dir()返回指定对象的成员列表,help(obj)返回对象obj的帮助信息,使用这两个函数有很大帮助。使用input(‘提示:’)输入。
such as: import math dir(math) dir(2+4j) dir('') help(math.sqrt)
文件操作:fp = open(r'test.txt', 'a+') print >> fp, "hello,world" fp.close #输入你好世界到文件中
在python3.4中需要进行重定向print('hello,world', file = fp)
read([size]) 从文件中读取size(如果有参数)个字节作为结果返回,没有参数返回所有内容。
readline() 从文本文件中读取一行内容作为结果返回
readlines() 把文本文件中的每行文本作为一个字符串存入列表中,返回该列表
seek(offset[,whence]) 吧文件指针移到新的位置,offset表示相对whence的位置(具体查询)
tell() 返回指针的当前位置
write(s) 把字符串s的内容写入文件中
writelines(s) 把字符串列表写入文本文件,不添加换行符
模块: 导入模块 import 模块名 [as 别名] #导入模块,若没有别名则使用模块名调用
导入确定对象 from 模块名 import 对象名 [as 别名] #导入模块中需要的对象
程序运行方式:每个python脚本在运行时都有一个__name__属性。如果脚本作为模块被导入,则其__name__属性的值被自动设置为模块名;如果脚本独立运行,则其__name__属性被设置为'__main__'。
利用这个属性可以控制python程序的一些行为。例如 if __name__ == '__main__': ...
切片操作:适用于列表、元组、字符串、range对象等类型。使用两个冒号三个数字表示。
第一个数字表示切片的开始位置(默认为0),第二个数字表示切片的结束位置(默认为列表长度),第三个数字表示步进(默认为1)。
例如:list[::], list[start:leng:step]in list = [x*x for x in range(10)]
字典:使用唯一的‘键’来访问字典,键不存在抛出异常。such as:dict = {'name':'dong', 'sex':'male', 'age':37}
访问:dict['name'] dict.items()(键和值) dict.keys() dict.values() dict.get('name')
更改数据:append(num) update({})
eval()把任意字符串转化为Python表达式并进行求职,可怕
序列解包:such as: x, y, z = 1, 2, 3 分别使x,y,z等于1,2,3
或者tuple = (False, 2.5, 'exp') x, y, z = tuple
lambda表达式:可以用来申明匿名函数,即没有名字临时使用的小函数,只可以包含一个表达式,计算结果是返回值。
eg:f = lambda x, y, z : x+y+z print f(1,2,3)
L = [(lambda x:x**2),(lambda x:x**3),(lambda x:x**4)] print L[0](2), L[1](2), L[2](2)
data.sort (key = lambda x:x)
函数定义:
def 函数名 ([参数列表]): #参数名可以有默认值
函数体
关键参数: 通过关键参数传递,实参顺序可以和形参顺序不一致,但不影响传递结果。
eg: def demo(a,b,c=5): print a,b,c 调用: demo(c=8,a=9,b=0) >>> 9 0 8
可变长度参数: 主要有两种形式:* parameter 和 **parameter,前者用来接受任意多个实参并将其放在一个元组中,后者接受类似于关键参数一样显示赋值形式的多个实参并将其放入字典中。
return语句: 没有return或者执行了不返回任何值的return语句,认为return None,返回空值。
内置函数:
map() 可以将一个但参数一次作用到一个序列或迭代器对象的每个元素上,并返回一个处理后的列表结果。
eg: map(str, range(5))
reduce() 将一个接受2个参数的函数以累计的方式从左到右依次作用到一个序列或迭代器对象的所有元素上
eg: seq = [1, 2, 3, 4, 5] reduce(lambda x,y:x+y, seq) 求seq所有元素之和
filter() 将一个单参数函数作用到一个序列上,返回改序列中使得该函数返回值为True的元素列表/元组或字符串
eg: seq = ['foo', 'x41', '?!', '***'] filter(lambda x:x.isalnum(), seq)
yield语句的函数用来创建一个生成器。
dis模块可以查看函数的字节码指令
eg: def add(n):..... import dis dis.dis(add)
类和对象:
Python可以动态地为类和对象增加成员
Python类中的特殊成员:
_xxx: 这样的对象成为保护变量,不能用‘from module import *'导入,只有类对象和子类对象能访问这些变量
__xxx__: 系统定义的特殊成员
__xxx: 类中的私有成员,只有类对象自己能访问,子类对象也不能访问这个成员。但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。
在IDLE交互模式下,一个下划线“_”表示解释器中最后一次显示的内容或最后一次语句正确执行的输出结果
类的方法:
类的方法可以粗略分为四大类:共有方法、私有方法、静态方法‘@staticmethod’和类方法’@classmethod‘。私有方法不能通过对象名直接调用之呢过在属于对象的方法中通过self调用或在外部通过Python支持的特殊方式来带哦用;静态方法和类方法都可以通过类名和对象名调用,但不能访问属于对象的成员,只能访问属于类的成员。
还有大量的特殊方法。如常见的__init__()构造函数 、 __del__()析构函数
Python 的变量不需要初始化类型,同时函数名也可以直接作为参数传递
eg: def fun(x, y, f)
return f(x) + f(y)
函数的返回还可以是返回一个函数。
def f(): print 'call f()...' # 定义函数g: def g(): print 'call g()...' # 返回函数g: return g x = f() x() f()()