python学习笔记(三)
实现switch
python中没有switch,我们可以使用字典跟函数实现
def add(x,y): return x+y def sub(x,y): return x-y operator = {"+":add,"-":sub} def f(x,o,y): return operator.get(o)(x,y) print operator.get(‘+‘)(1,2) print f(1,‘+‘,2)
简化x=1 y=2 result = { "+":x+y, "-":x-y, "*":x*y, "/":x/y } print result.get("+")
内建函数
一些常用函数
运算:abs() max() min() len()divmod() 取两个数的商和余数 列 divmod(5,2) 产生 (2, 1)pow() pow(x, y[, z]) 返回 (x**y) % zround() round(number[, ndigits]) 返回一个浮点数callable() 判断某一个函数是否可被调用type() 返回变量是什么类型的isinstance() 判断变量类型 例子 isinstance(l,list) 返回True或Falsecmp() 比较两个字符串range() 生成序列xrange()类型转化:type() int() long() float() complex() str() list() tuple() hex() oct() chr() ord()
字符串处理
str.capitalize() 把首字母变大写str.replace() 替换str.split() 切割 例子:>>> ip=‘192.168.1.1‘
>>> ip.split(‘.‘)
[‘192‘, ‘168‘, ‘1‘, ‘1‘]引入string模块import string用法 例如:>>> string.replace(‘www‘,‘w‘,‘a‘)
‘aaa‘序列处理
filter() filter(function or None, sequence) 把参数函数返回True的值保留zip() 选择最短的列表进行并行便利例如:name=[‘wang‘,‘zhang‘,‘li‘] age=[18,19,20] sex=[‘x‘,‘y‘,‘x‘] print zip(name,age,sex)输出: [(‘wang‘, 18, ‘x‘), (‘zhang‘, 19, ‘y‘), (‘li‘, 20, ‘x‘)]如果sex=[‘x‘,‘y‘]只会输出 [(‘wang‘, 18, ‘x‘), (‘zhang‘, 19, ‘y‘)]map() 比zip()多了个函数函数,可以把列表并行便利的值传给这个函[(‘wang‘, 18, ‘x‘), (‘zhang‘, 19, ‘y‘)]数例子:a=[1,2,3] b=[2,3,4] def f(x,y): return x*y print map(f,a,b)输出[2, 6, 12]如果有一个比其他的少并且函数参数是None,map会自动部Nonea=[1,2,3] b=[2,3] print map(None,a,b)[(1, 2), (2, 3), (3, None)]
reduce() 递归 具体见help(reduce)
模块
同一目录有cal.py 跟 1.py文件cal.pydef add(x,y): return x+y def sub(x,y): return x-y print add(2,3) ~1.pyimport cal运行1.py可以看见
add(2,3)的结果,说明,import cal是把cal.py 代码加到了1.py中如果在1.py 用cal.py 的函数得要加上 cal.xxximport cal print cal.add(1,2) print cal.sub(1,2)
如果想让cal.py 中的add(2,3)直接调用就执行,improt就不执行可以写成:def add(x,y): return x+y def sub(x,y): return x-y if __name__=="__main__": print add(2,3)__name__是python内置变量,如果cal.py是直接执行就是__main__,如果不是__name__就是calimport cal as cc.add(1,2)可以为模块取别名from cal imoprt add这样就不用 cal.add(1,2) 直接add(1,2)就行李
包
创建包的步骤:
建立一个文件夹,文件夹名字就是包名在该文件夹下创建一个__init__.py文件根据需要在该文件夹下存放脚本文件,已编译扩展及子包。
导入包 就是 improt 报名.模块名