1.函数的参数传递
根据形参来分:必选参数、默认参数、可变长位置参数、可变长关键字参数
根据实参来分:位置参数、关键字参数
必选参数:一定要填的参数,不填就会报错
默认参数:可以给变量设置一个默认参数,如果没有传参数就取默认值,如过传了参数就是参数,默认值不影响
def stuInfo(name, age, sex="female"): print(f"my name is {name}, my age is {age}, my sex is {sex}") stuInfo("sc", 18) # my name is sc, my age is 18, my sex is female
可变长位置参数:同一个位置可以传递任意个参数,得到的结果是元组类型
def myargs(*nums): print(nums) print(type(nums)) myargs() myargs(1) myargs(1, 2) # () # <class 'tuple'> # (1,) # <class 'tuple'> # (1, 2) # <class 'tuple'>
可变长关键字参数:同一个位置可以传递任意个参数,得到的结果是字典类型
def mywargs(**nums): print(nums) print(type(nums)) mywargs(a=1) # {'a': 1} # <class 'dict'>
2.引用传递
3.值传递
4.打包、解包
打包:在函数定义中,将收集到的所有可变长位置参数传递给元组,将收集到的所有可变长关键字参数传递给字典
解包:将元组、列表、字典中的数据分离开来,做独立的参数使用
解包列表:
lst = [1, 2, 3, "abc"] print(lst) print(*lst) print(1, 2, 3, "abc") # [1, 2, 3, 'abc'] # 1 2 3 abc # 1 2 3 abc #t1 = (1, 2, 3)
解包元组:
t1 = (1, 2, 3) print(t1) print(*t1) print(1, 2, 3) # (1, 2, 3) # 1 2 3 # 1 2 3
解包字典:
d1 = {"a": 1, "b": 2, "c": 3} d2 = {"d": 4, "e": 5, "f": 6} # print(**d2)-->print(d=4, e=5, f=6)-->这是赋值语句,不合法输出 d3 = dict(d1, **d2) d4 = dict(d1, d=4, e=5, f=6) print(d3) print(d4) # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6} # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
5.变量名的解析(LEGB)
1.查找未被认证的变量名时,先在本地作用域找 2.没找到的话就在上层作用域找 3.如果还没找到,重复2找 4.如果最后还是没找到就在全局找 5.在内置作用域(python解释器的内部)找
6.文档注释
包或者模块或者函数内,第一个用三引号引起来的字符串,一般存放使用说明信息
设置文档注释:
①.点击左上角的file,找到setting
②.点击settings,在左上角的输入框输入:file and code templates
③ 在中间栏找到python script,在右边输入你想注释的内容
7.函数的返回值
函数可以有返回值也可以没有返回值,如果函数没有返回值就返回NONE