函数
'''1、无参函数:def index(): print('ok')2、空函数:def index(): passdef login(): pass3、有参函数:def login(username): print(udername)'''
返回值:
1、不写return:默认返回None
2、只写return:只有结束函数体函数的效果,返回None
3、写return None:只有结束函数体函数的效果,返回None
4、return返回一个值:可以将返回的结果,当做变量被使用
5、return返回多个值:将返回多个值,默认存入元组返回
函数的返回值不想被修改()
可以自己指定返回的数据类型
return是一个函数结束的标志,函数体代码只要执行到return,函数执行结束
# 不写return# def index():# print('hello world')# print(index())# hello world# None#只写return# def index():# print('hello world')# return# print(index())# hello world# None# 写return None# def index():# print('aiwanglu')# return None# print(index())# aiwanglu# None# return返回一个值# a = 1# b = 2# def home():# if a > b:# return a# else:# return b# h1 = home()# print(h1)# return返回多个值:a = 1b = 2c = '3'd = [4, 5]e = {'name': 'sean'}def suzi(a, b, c, d, e): return a, b, c, d, es1 = suzi(a, b, c, d, e)print(s1)
函数的参数
函数是先定义,后调用
在定义阶段执行的话,只检测语法,
不执行任何代码
形参:是在定义阶段就规范的参数,他就相当于定义变量时的变量名
实参:是在函数调用阶段传入的参数,他相当于定义变量时的变量值
a = 1b = 3def bijiao(a,b): # 形参:相当于变量名 if a > b: return a else: return bprint(bijiao(a,b)) # 实参:相当于变量值
位置参数、关键词参数,默认参数
位置参数:通过位置进行传参
关键词参数,指定参数进行传参
默认参数,在定义函数阶段就已经传入参数,
如果说你在实参的时候传入了一个新的参数,
就会使用新参数默认参数在传值的时候,
不要将可变类型当做参数传递
应用场景: 当参数对应值重复出现的情况下使用默认参数
位置参数一定一定一定要在位置参数的前面,连用的时候,不要对同一个形参重复赋值
# def xingcan(a, b, c, d):# return a ,b, c ,d# print(xingcan(1,2, '3', (3,4)))# def xingcan(a, b, c, d):# return a ,b, c ,d# print(xingcan(b=1,a=2, c='3', d=(3,4)))# def xingcan(a, b, c, d=4):# return a ,b, c ,d# print(xingcan(1,2, '3'))
可变长参数
*args: 接受所有溢出的位置参数,接受的值都被存入一个元组
官方认证:*args
只要有*就有可变长参数的效果
*:打散你传入容器类型
**kwarge:接受所有溢出的关键字参数
接受的值被存入一个字典
官方认证:**kwargs
# def index(a, b, c,*args):# print(a ,b ,c ,args)## index(1, 2, *(3, 4, 5))# 1 2 3 (4, 5)def index(a, b, c,**kwargs): print(a ,b ,c ,kwargs)index(a=1, b=2, c=(3, 4, 5), d=[6,7], e={'age':22})# 1 2 (3, 4, 5) {'d': [6, 7], 'e': {'age': 22}}