python 基础2
2016-02-04 10:38
706 查看
hex(),只能将整数转换成十六进制的字符串
bool(),bool(0),bool(”),bool(False)是转换成False,其他都是True
在当前目录导入一个py的函数,from 文件名(不加py) import 函数名(不加括号)
参数类型检查,可以用 isinstance(x,(int,float)),检查x是否是整型,浮点型
函数默认参数,如下def enroll(name,gender,age=6,city=’beijing’)可以不按顺序调用默认参数,指定默认参数值就行,如enroll(‘zhou’,’male’,city=’hangzhou’)
默认参数的陷阱:
每次调用都会加一个end,因为函数定义时,L就指向了一块内存,要避免这种情况,可以这样
可变参数调用在参数前加一个*即可
person(‘michael’,30)—->name:michael age:30 other:{}
persion(‘bob’,35,city=’beijing’)—->name:bob age:35 other:{‘city’:’beijing’}
person(‘adam’,45,gender=’m’,job=’engineer’)—>name:adam age:45 other:{‘gender’:’m’, ‘job’:’engineer}
extra={‘city’:’beijing’,’job’:’engineer’}
person(‘jack’,24,**extra)
如果要限制关键字参数的名字,就可以使用命名关键字参数,例如,只接收city,job作为关键字,
如果关键字有缺省值,可以简化调用,如def person(name,age,*,city=’beijing’,job) 可以这样调用person(‘jack’,24,job=’engineer)
参数定义的顺序:必选参数,默认参数,可变参数/命名关键字参数,关键字参数
*
f1(1,2)—->a=1 b=2 c=3 args=() kw={}
f1(1,2,3,c=3)—>a=1 b=2 c=3 args=() kw={}
f1(1,2,3,’a’,’b’)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={}
f1(1,2,3,’a’,’b’,x=99)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={‘x’:99}
f2(1,2,d=99,ext=None)–>a=1 b=2 c=0 d=99 kw={‘ext’:None}
args=(1,2,3,4)
kw={‘d’:99,’x’:’#’}
f1(*args,**kw)
—>a=1 b=2 c=3 args=(4,) kw={‘d’,99,’x’:’#’}
args=(1,2,3)
kw={‘d’:88,’x’:’#’}
f2(*args,**kw)
—>a=1 b=2 c=3 d=88 kw={‘x’:’#’}
bool(),bool(0),bool(”),bool(False)是转换成False,其他都是True
在当前目录导入一个py的函数,from 文件名(不加py) import 函数名(不加括号)
参数类型检查,可以用 isinstance(x,(int,float)),检查x是否是整型,浮点型
函数默认参数,如下def enroll(name,gender,age=6,city=’beijing’)可以不按顺序调用默认参数,指定默认参数值就行,如enroll(‘zhou’,’male’,city=’hangzhou’)
默认参数的陷阱:
def add_end(L=[]): L.append('end') reutn L
每次调用都会加一个end,因为函数定义时,L就指向了一块内存,要避免这种情况,可以这样
def add_end(L=None): if L is None: L = [] L.append('end') return L
可变参数调用在参数前加一个*即可
def calc(*numbers): sum=0 for n in numbers: sum=sum+n*n return sum``` 可以calc(1,2)-->5 calc()-->0 * 把列表当作可变参数传进去,直接传递给有可变参数的函数会报错,calc(*[1,2,3]) * 关键字参数,能传进去一个字典 ···python def person(name,age,**kw): print('name:',name,'age:',age,'other:',kw)
person(‘michael’,30)—->name:michael age:30 other:{}
persion(‘bob’,35,city=’beijing’)—->name:bob age:35 other:{‘city’:’beijing’}
person(‘adam’,45,gender=’m’,job=’engineer’)—>name:adam age:45 other:{‘gender’:’m’, ‘job’:’engineer}
extra={‘city’:’beijing’,’job’:’engineer’}
person(‘jack’,24,**extra)
如果要限制关键字参数的名字,就可以使用命名关键字参数,例如,只接收city,job作为关键字,
def person(name,age,*,city,job): print(name,age,city,job)
如果关键字有缺省值,可以简化调用,如def person(name,age,*,city=’beijing’,job) 可以这样调用person(‘jack’,24,job=’engineer)
参数定义的顺序:必选参数,默认参数,可变参数/命名关键字参数,关键字参数
*
def f1(a,b,c=0,*agrs,**kw) print('a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw) def f2(a,b,c=0,*,d,**kw): print('a=',a,'b=',b,'c=',c,'d=',d,'kw=',kw)
f1(1,2)—->a=1 b=2 c=3 args=() kw={}
f1(1,2,3,c=3)—>a=1 b=2 c=3 args=() kw={}
f1(1,2,3,’a’,’b’)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={}
f1(1,2,3,’a’,’b’,x=99)–>a=1 b=2 c=3 args=(‘a’,’b’) kw={‘x’:99}
f2(1,2,d=99,ext=None)–>a=1 b=2 c=0 d=99 kw={‘ext’:None}
args=(1,2,3,4)
kw={‘d’:99,’x’:’#’}
f1(*args,**kw)
—>a=1 b=2 c=3 args=(4,) kw={‘d’,99,’x’:’#’}
args=(1,2,3)
kw={‘d’:88,’x’:’#’}
f2(*args,**kw)
—>a=1 b=2 c=3 d=88 kw={‘x’:’#’}
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法