变量作用域:变量生效的范围,主要分局部和全局变量。
1、在函数体内部的变量,只有在函数体内部生效。其作用是在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量。
def text(): a = 100 print(a) #体内局部变量访问,可以访问到。 text() print(a) #报错
函数体内,外都能生效的变量。
a = 100 def t1(): print(a) def t2(): print(a) t1() t2()
global a #关键字声明a为全局变量 a = 200 print(a)
glob_num = 0 def t(): global glob_num glob_num = 100 def t1(): print(glob_num) print(glob_num) t() t1() print(glob_num)
def t1(): return 50 #return后边可以写元组,字典,列表。返回多个值也可以用逗号分开同样返回多个值。 def t2(num): print(num) result = t1() t2(result)
调用函数时根据函数定义的参数位置来传递参数。(传递和定义参数的顺序及个数必须一致)
def user_info(name, age, gender): print(f'您的名字是{name}, 年龄{age}, 性别:{gender}') user_info('tom', 20, '男') user_info('lee', gemder=‘女’, age=44)#关键字参数
函数调用,通过键=值形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。(函数调用是,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。)
也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(所有位置参数必须出现在默认参数前,包括函数定义和调用)。
又叫可变参数。用于不确定可调用的时候会传递多少个参数(不传参也可以)的场景。此时可以包裹位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。
def user_info(*args): print(args) user_info('lee') user_info('lee', 22)