一、函数定义及调用
- 函数:对功能和动作的封装
- 使用def关键字来定义函数
- 使用"函数名()"可调用函数
def 函数名(): 函数体
函数名() # 调用函数
二、return
执行完函数后,可以使用return来返回结果
- return作用:终止函数运行
- 如果函数体无return,则调用函数返回None
- 如果函数体有return,但return后未有值,则返回None
- 如果函数体有return,且return后有一个值或变量名,则返回值或变量名所指向的值
- 如果函数体有return,且return后有多个值,则多个值以元组形式返回给调用者,调用者可直接解构成多个变量
def operation(a, b): sum = a + b sub = a - b qud = a * b qut = a / b return sum, sub, qud, qut x, y, z, w = operation(1, 2)
三、参数
1)形参
写在函数声明的位置的变量
- 位置参数
def regist(id, name, age, gender): print(id, name, age, gender) regist(1, "Tom", 18, "男") # 1 Tom 18 男
- 默认值参数
默认值参数可以把函数共性的参数问题进行提炼,以减少输入,提高输入效率
def regist(id, name, age, gender="男"): print(id, name, age, gender) regist(1, "Tom", 18) # 1 Tom 18 男
- 混合参数(位置参数+默认值参数)
位置参数在前,默认值参数在后,否则报错
def regist(id, name, gender="男", age): print(id, name, age, gender) regist(1, "Tom", 18) # SyntaxError: non-default argument follows default argument
2)实参
在函数调用的时候给函数传递的值。实际执行的时候给函数传递的信息
- 位置参数
按照形参顺序给把各实参赋值给相应的形参
def introduction(name, age): print("My name is %s, I'm %s years old." % (name, age)) introduction("Tom", 18) # My name is Tom, I'm 18 years old.
def introduction(name, age): print("My name is %s, I'm %s years old." % (name, age)) introduction(18, "Tom") # My name is 18, I'm Tom years old.
- 关键字参数
根据形参声明的变量名来传递信息,关键字实参不需要考虑形参顺序
def introduction(name, age): print("My name is %s, I'm %s years old." % (name, age)) introduction(age=18, name="Tom") # My name is Tom, I'm 18 years old.
- 混合参数(位置参数+关键字参数)
位置参数在前,关键字参数在后,否则报错
def introduction(name, age, sex):
print("My name is %s, I'm %s years old %s" % (name, age, sex))
introduction("Tom", sex="boy", age=18) # My name is Tom, I'm 18 years old boy
def introduction(name, age, sex): print("My name is %s, I'm %s years old %s" % (name, age, sex)) introduction("Tom", sex="boy", 18) # SyntaxError: positional argument follows keyword argument
- 动态传参
3)传参
给函数传递信息的时候将实际参数交给形式参数的过程