实现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) % z
round() round(number[, ndigits]) 返回一个浮点数
callable() 判断某一个函数是否可被调用
type() 返回变量是什么类型的
isinstance() 判断变量类型 例子 isinstance(l,list) 返回True或False
cmp() 比较两个字符串
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']
>>> ip.split('.')
['192', '168', '1', '1']
引入string模块
import string
用法 例如:
>>> string.replace('www','w','a')
'aaa'
'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会自动部None
a=[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.py
def add(x,y): return x+y def sub(x,y): return x-y print add(2,3) ~
1.py
import cal
运行1.py可以看见
add(2,3)的结果,说明,import cal是把cal.py 代码加到了1.py中
add(2,3)的结果,说明,import cal是把cal.py 代码加到了1.py中
如果在1.py 用cal.py 的函数
得要加上 cal.xxx
import 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__就是cal
import cal as c
c.add(1,2)
可以为模块取别名
from cal imoprt add
这样就不用 cal.add(1,2) 直接add(1,2)就行了
包
创建包的步骤:
建立一个文件夹,文件夹名字就是包名
在该文件夹下创建一个__init__.py文件
根据需要在该文件夹下存放脚本文件,已编译扩展及子包。
导入包 就是 improt 报名.模块名
billvsme
评论: 恩恩 :),我这里都是针对python2的
2015-05-27 21:40:55          回复
luckystar1992
评论: python2和python3 有些地方确实是不相同的,以后举例子的时候应该加上版本,这样更严谨些 :)
2015-05-27 12:36:57          回复
billvsme
评论: 评论
2015-05-05 14:06:16          回复