day10 函数
把重复代码写成一个通用模版
可以把冗余的代码独立开
把工具事先准备好
定义函数
def 函数名():
代码快
函数名:需要具有某种意义
代码块,实现具体的功能
使用函数:
函数()
一个函数分为两个阶段,分别是定义和调用
定义函数的三种形式
函数的参数
函数的返回值
函数的可变长参数
函数只是一种思想,干活的具体实现都是靠if/while/for+变量,函数只是帮你干活更轻松
第一种定义方式,无参函数
def self_max():
x,y=10,20
if x>y:
print(x)
else:
print(y)
第二种定义方式,有参函数
def self_max(x,y):
if x>y:
print(x)
else:
print(y)
第三种定义方式,空函数
def self_max():
pass
函数返回值
return 默认返回None
return 可以返回任意数据类型的数据
当return 返回多个值的时候,会以元组的形式把多个值包在一起
return 会终止函数
函数的两个阶段
- 定义阶段:定义阶段的x和y被称为形参,形参具有描述意义,类似于变量名,不为具体的数据类型
- 调用阶段:调用阶段的x和y被称为实参,实参必须是具体的某种数据类型
形参
默认形参:值不需要改变,并且经常使用,默认形参必须在位置形参后面
关键字形参:在函数定义阶段,提前赋值给形参
关键字实参
用于函数调用阶段,找到与形参的对应关系,并赋值给对应的形参
面试经常问,不推荐使用
可变长实参
def selfmax(a,b,c,d,e,f,g,h=1,g=3)
print(a,b,c,d,e,f,g,h)
a= [1,2,3,4,5,6,7,8,9] # *会把元组或者列表打散一个个做为实参传个函数
b= {'x':10,'y':12} # **会把这个字典达三成键值对的形式做为实参传给函数
selfmax(*a,**b)
可变长形参
def self_max(*a,**b)
print(a)
print(b)
self_max(1,2,3,4,5,6,7,x=6,y=9,z=20)
*a 接收了所有的位置实参,然后以元组的形式保存下来
**b 接受了所有的关键字参数,然后以字典的形式保存下来
约定俗成
"*" 后面必须得写args,"**"后面必须得写kwargs,约定俗称的一种规范