一 函数的定义,调用,返回值
1.函数的作用: 封装 减少重复代码
2.函数的书写格式
def 关键字 定义一个函数
def 函数名():
缩进 函数体(代码块)
def func():
print('我')
print('爱')
print('你')
return '1314' #返回值,将内容返回给调用者
#不写return或写了return不写值返回None
msg = func() #函数名() -- 调用
print(msg)
return返回多个变量是,返回的是元祖形式,返回的内容不受限制
函数中当执行到return的时候就结束了,return以下的代码都不执行,并终止这个函数.
return 不能终止循环,只能终止函数
二 函数的参数
2.1 位置参数
def func(addr,addr1): #形参
print(f'我在{addr}上网')
print(f'你在{addr1}睡觉')
func('网吧','沙发') #实参
定义的参数是形参,调用的参数是实参,从实参到形参的过程叫传参
形参就是一个变量名,实参就是值 传参就是在赋值
形参和实参的的数量要一 一对应
2.2 关键字参数(实参的角度)
def func(addr1,addr):
print(f'我在{addr}上网')
print(f'你在{addr1}睡觉')
func(addr = '网吧',addr1 = '沙发')
2.3 混合参数
def func(addr,addr1):
print(f'我在{addr}上网')
print(f'你在{addr1}睡觉')
func('网吧',addr1 = '沙发')
注意: 在使用混合参数的时候, 关键字参数必须在位置参数后面
2.4 默认值参数(形参的角度)
def func(addr,addr1= '沙发'): #默认值参数
print(f'我在{addr}上网')
print(f'你在{addr1}睡觉')
func('网吧',addr1 = '床上') #下面的addr1的值会覆盖上面的值
注意: 在使用混合参数的时候, 默认值参数必须在位置参数后面
默认值参数一般用于传进来的参数大多数都是一样的
2.5 动态参数
1.动态位置参数 *变量名 万能(接收任意多个)的位置参数
def eat(a,b,*args,c='白菜'): #聚合打包
print('我想吃',a,b,args,c) #元祖形式(接受的是位置参数)
eat('猪肉','粉条','豆腐','大葱')
结果:
我想吃 猪肉 粉条 (‘豆腐‘, ‘大葱‘) 白菜
def eat(a,b,*args,c='白菜'):
print('我想吃',a,b,*args,c) #打散
eat('猪肉','粉条','豆腐','大葱')
结果:
我想吃 猪肉 粉条 豆腐 大葱 白菜
动态参数必须在位置参数后面
形参的顺序: 位置参数 , 动态位置参数 , 默认参数
2.动态关键字参数 **变量名
def func(**kwargs):
print(kwargs) # 字典形式(接收的是关键字参数)
func(a=1, b=2, c=3)
结果:
{‘a‘: 1, ‘b‘: 2, ‘c‘: 3}
def func(**kwargs):
print(*kwargs) # 得到的是字典的键
func(a=1, b=2, c=3)
结果:
a b c
def func(a,b,*args,c=1,**kwargs):
print(a,b,c,args,kwargs)
func(1,2,3,4,5,6,7,8,9,c=55,d=1,f=3)
结果:
1 2 55 (3, 4, 5, 6, 7, 8, 9) {‘d‘: 1, ‘f‘: 3}
位置参数 > *args(动态位置参数) > 默认值参数 > **kwargs(动态默认参数)
传列表
lst = [1,4,7]
def func(*args):
print(args)
func(*lst) #打散 去壳
#在实参的位置上用*将lst(可迭代对象)按照顺序打散在#形参的位置上用*把收到的参数组合成一个元祖
传字典
dic = {'a':1,'b':2}
def func(**kwargs)
print(kwargs)
func(**dic) #字典的键必须是字符串
三 函数的注释
在函数里"""回车"""
函数名.__doc__ 查看函数的注释
原文地址:https://www.cnblogs.com/lav3nder/p/11801498.html
时间: 2024-10-26 00:02:28