1、知识回顾
局部变量与全局变量的介绍前文已作详细介绍,这里我们简单描述即可。
局部变量:定义在函数体内部的变?,它只在函数体内部生效。如果在函数外部访问则会立即报错。
全局变量:指的是在函数体内、外都能生效的变量。如需在函数体内部修改全局变量,先global 关键字声明a是全局变?,再进行赋值即可。
2、多函数程序执?流程
2.1 共用全局变量
步骤:1、定义全局变量 ;
2、定义两个函数 ;
3、函数一修改全局变量(注意:需先global 关键字声明全局变?,再作修改);函数二访问全局变量。
代码实例:
# 1、声明全局变量 2、定义两个函数 3、函数一修改全局变量;函数二访问全局变量# 1. 定义全局变?
glo_num = 0
def test1():"""函数1修改全局变量"""global glo_numglo_num = 100def test2():"""函数2去调用test1函数中修改后的全局变量"""print(glo_num) # 100,因为是调用了test1的结果print(glo_num) # 0因为修改的变量没执行# 2. 调用test1函数,执?函数内部代码:声明和修改全局变?
test1()
# 3. 调用test2函数,执?函数内部代码:打印
test2()
2.2 返回值作为参数
步骤:1.定义两个函数:函数一、函数二;
2.先得到参数一的返回值9;
3.将函数一的返回值作为参数传入函数二(函数二有形参)。
代码实例:
def test1():return 9
def test2(num):print(num)
# 1. 保存函数test1的返回值
result = test1()
# 2.将函数返回值所在变量?作为参数传递到test2函数
test2(result) # 9
3、return多个返回值
在之前的学习中已知return的作用是:
① 负责函数返回值;
② 退出当前函数,导致return下方(函数体内部)的所有代码不执行。
若一个函数需要return返回多个值时需注意:
① 可以以 return a, b 的写法返回多个数据,默认是元组类型。
② return后面可以连接?表、元组或字典,以返回多个值。
def return_num():# return 1, 2 # 默认是元组类型
# return后面可以直接书写:元组、列表、字典,以此来返回多个值# return [1, 2] # [1, 2],列表类型return {'name': 'lisa', 'age': 18} # {'name': 'lisa', 'age': 18},字典类型
result = return_num()
print(result)
4、函数的参数的其他写法
4.1 位置参数写法
位置参数:调用函数时根据函数定义的参数位置来传递的参数。
值得注意的是:传递和定义参数的顺序及个数必须一致,即:调用函数时传入的实参顺序与个数必须与定义时的形参一致。如果当传入个数和定义不一致会报错;当顺序和定义不一致时会导致数据无意义。
4.2 关键字参数
关键字参数:调用参数时通过“键=值”形式加以指定。可以让函数?加清晰、容易使用,同时也清除?参数的顺序需求。
注意:函数调用如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间?存在先后顺序。
# 关键字参数
def user_info(name, age, gender):print(f'您的名字是{name}, ?龄是{age}, 性别是{gender}')user_info('Lisa', age=18, gender='女')
user_info('Tom', gender='男', age=20) # 关键字之间不分先后顺序
# user_info(gender='男', age=20, 'Tom') 位置参数必须写在关键字的前面,否则会报错
4.3 缺省参数
缺省参数:也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可?传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)。
注意:函数调用时,如果为缺省参数传值则修改默认参数值;否则使用这个默认值。
# 缺省参数
def user_info(name, age, gender='男'):print(f'您的名字是{name}, ?龄是{age}, 性别是{gender}')
user_info('TOM', 20) # 没有为缺省参数传值,使用默认值“男”
user_info('Lisa', 18, '?') # 为缺省参数传值,使用这个值,即修改了默认值
4.4 不定长参数