python学习笔记(三) 实现switch,内建函数,模块和包

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) % 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‘]

引入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会自动部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中

如果在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  报名.模块名





python学习笔记(三) 实现switch,内建函数,模块和包,布布扣,bubuko.com

python学习笔记(三) 实现switch,内建函数,模块和包

上一篇:Spring MVC Controller单例陷阱


下一篇:Yii2中的入口文件环境配置