标签:关键字实参 3.3 特点 code use 依赖 int 表示 内置函数
函数基础
使用:先定义后调用
分类:
1.内置函数:
2.自定义函数:
语法:def 函数名(参数1,参数2,...):
‘‘‘注释信息‘‘‘
函数体
return #返回值
def auth():
name=input(‘name>>:‘).strip()
password=input(‘password>>:‘).strip()
if name == ‘abc‘ and password == ‘123‘:
print(‘login successfull‘)
else:
print(‘user or password err‘)
auth()
3.定义函数的三种形式:
(1):无参函数
(2):有参函数
(3):空函数
有参函数:
def auth(name,password):
if name == ‘abc‘ and password == ‘123‘:
print(‘login successfull‘)
else:
print(‘user or password err‘)
无参函数:
def inter():
name=input(‘name>>:‘).strip()
password=input(‘password>>:‘).strip()
auth(name,password)
inter()
空函数:
def suh():
pass
返回值: #return函数内可以有多个return,但是只能执行一次return,执行return函数就立即结束,并且return的后值当做本次调用的结果返回。
#返回的值没有类型限制,可以是列表,字符串,等等
def fuf(x,y):
return x+y
res=fuf(1,2)
print(res)
没有return默认返回None
返回多个值:结果返回一个元组
def fuf():
pass
return 1,‘a‘,[1,2]
print(fuf())
(1,‘a‘,[1,2])
4.函数调用的三种形式:
def my_max(x,y):
if x >= y:
return x
else:
return y
res=my_max(1,2)*10
pinrt(res)
30
res2=my_max(my_max(1,2),3)
print(res2)
3
5.函数的参数分类:
1.形参:在定义阶段括号内指定的参数,相当于变量名
2.实参:在调用阶段括号内传入的值称之为实参,相当于变量的值
在调用阶段,实参的值会绑定给形参,在调用结束后解除绑定
def foo(x,y): #x,y为形参
print(x,y)
foo(1,2) #1,2为实参
1.位置参数:按照从左到右的顺序依次定义的参数。用于经常变化的参数
位置形参:必须被传值,多一个少一个都不行
位置实参:与形参一一对应传值
2.关键字参数:在函数调用时,按照key=value的形式定义的实参
特点:不再依赖与位置的限制
def foo(x,y):
print(x,y)
foo(y=1,x=2)
注:
关键字实参和位置实参混合使用时,关键字实参必须在位置实参的后面,不能为同一个形参赋多个值。
3.默认参数:在函数定义阶段,就已经为形参赋值了。用于不常变化的参数
def foo(x,y=1):
print(x,y)
foo(1)
1 1
foo(1,2)
1 2
注:
3.1:默认参数必须放在位置形参的后面
3.2:默认参数的值只在定义是被赋值一次
res=1
def foo(x,y=res):
print(x,y)
res=10
foo(‘a‘)
a 1
3.3:默认参数的值通常应该是不可变类型。
4.可变长参数,在调用函数时,实参值的个数不固定
实参的形式:位置形参和实参用*表示,关键字形参和实参用**表示
def foo(x,y,*args): #args=(3,4,5) args为元组
print(x,y)
print(args)
foo(1,2,3,4,5)
foo(1,2,*[3,4,5]) #foo(1,2,3,4,5)
foo(*(1,2,3,4,5)) #foo(1,2,3,4,5)
def foo(x,y,**kwargs): #kwargs={‘c‘:5,‘a‘:3,‘b‘:4} kwargs为字典
print(x,y)
print(kwargs)
foo(y=2,x=1,a=3,b=4,c=5)
foo(y=2,**{‘x‘:1,‘a‘:3,‘b‘:4,‘c‘:5}) #foo(y=2,x=1,a=3,b=4,c=5)
def bar(x,y,z):
print(x,y,z)
def war(*args,**kwargs): #args=(1),kwages={‘z‘:2,‘y‘:3}
bar(*args,**kwargs) #bar(*(1),**{‘z‘:2,‘y‘:3}) #bar(1,z=2,y=3)
foo(y=2,x=1,a=3,b=4,c=5)
war(1,z=2,y=3)
5.命名关键字参数: 定义在*后的参数,该参数必须被传值(除非他有默认值了),而且必须按照key=value的形式传值
def foo(x,y,*,m,n): #m,n为命名关键字形参
print(x,y)
print(m,n)
foo(1,2,m=3,n=4)
foo(1,2,3,m=3,n=4)
标签:关键字实参 3.3 特点 code use 依赖 int 表示 内置函数
原文地址:http://blog.51cto.com/13399294/2158282