一、课堂引入:
上节课我们学习了函数的基本概念和应用,本节课我们将会全面的学习函数中的参数问题。
二、函数参数
函数的基本格式:
def function(参数1,参数2):
# def:定义函数 # function() 函数名 # 参数1和参数2自己定义
参数分为形参和实参:
# 形参:定义函数时括号内写的参数。 # 实参:在调用函数时括号内传进来的值。
参数种类:位置参数、默认参数、可变长参数和关键字参数。
#1、位置参数:按照从左到右的顺序定义的参数 位置形参:必选参数 位置实参:按照位置给形参传值 def foo(x,y): print(x,y) foo(1,2) # foo(1,2,3) 但凡被位置定义的参数,必须要被传值,不然会被报错,多一个不行,少一个也不行
#2、默认参数:形参在定义时就已经为其赋值 可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参) 注意的问题: 1. 只在定义时赋值一次 2. 默认参数的定义应该在位置形参右面 3. 默认参数通常应该定义成不可变类型 def bar(x,y=8): print(x,y) bar(10) # bar(10,12)
# 3.可变参数:实参值的个数不固定 # def soo(x,y,*z): # print(x,y,z) # soo(1,2,3,4,5) # def foo(x,y,*args): # print(x,y) # print(args) # foo(1,2,*[3,4,5]) # def foo(x,y,**kwargs): # print(x,y) # print(kwargs) # foo(1,y=2,a=1,b=2,c=3) def information_foo(x,y,**kwargs): print(x,y) print(kwargs) information_foo(1,y=2,a=2,c=10)
#4、关键字参数:按照key=value的形式定义的实参 无需按照位置为形参传值 注意的问题: 1. 关键字实参必须在位置实参右面 2. 对同一个形参不能重复传值 def information(name,age): print(name,age) # information("Rita",17) # 优化 information(age=17,name="Rita")
三、return的使用
# return():是函数结束的标志,函数体中可以有多个return,但是只要执行一次,整个函数就结束了 def f1(): print("first") return 1 print("second") return 2 f1()