您的位置:首页 > 编程语言 > Python开发

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’)

默认参数的陷阱:

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