函数初接触
函数
'''
1、无参函数:
def index():
print('ok')
2、空函数:
def index():
pass
def login():
pass
3、有参函数:
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 = 1
b = 2
c = '3'
d = [4, 5]
e = {'name': 'sean'}
def suzi(a, b, c, d, e):
return a, b, c, d, e
s1 = suzi(a, b, c, d, e)
print(s1)
函数的参数
函数是先定义,后调用
在定义阶段执行的话,只检测语法,
不执行任何代码
形参:是在定义阶段就规范的参数,他就相当于定义变量时的变量名
实参:是在函数调用阶段传入的参数,他相当于定义变量时的变量值
a = 1
b = 3
def bijiao(a,b): # 形参:相当于变量名
if a > b:
return a
else:
return b
print(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}}