python函数基础以及参数进阶
局部变量升级全局变量
name = '刘亦菲'
def func():
# 将局部变量升级为全局变量
global name
name = '赵丽颖' # name之前的刘亦菲的值覆盖:赵丽颖
print(f'局部变量:{name}') # 2赵丽颖
print(f'全局变量:{name}') # 3赵丽颖
print(name) # 1刘亦菲
func()
print(name) # 4赵丽颖
def func(x, y, z):
print(f'x的值是:{x}')
print(f'y的值是:{y}')
print(f'z的值是:{z}')
通过位置参数传递实参
func(1,2,3)
通过形参关键字传递是实参
func(x=3, y=2, z=5)
可以指定不按照顺序传递实参,但是不能多给也不能少给
func(z=3, y=2, x=5)
位置参数可以结合关键字参数一起使用
func(666, z=888, y=777)
默认参数基本使用
当位置参数和默认参数一起使用,那么默认参数必须在位置参数后面
# def func(x=123, y, z):
def func(x, y, z=666):
print(f'x的值是:{x}')
print(f'y的值是:{y}')
print(f'z的值是:{z}')
# 不传递实参给默认参数,使用默认参数值
func(123, 456)
# 传递实参给默认参数,覆盖默认参数值,使用实参值
func(123, 456, 789)
默认参数的使用场景:控制实参传递数量范围
位置参数决定参数下限,默认参数决定参数的上限
定义一个函数可以接收3-5个实参
def func(a, b, c, d=None, e=None):
print(f'当前函数可以接收3-5个实参:{a, b, c, d, e}')
func(1,2,3)
func(1,2,3,4)
func(1,2,3,4,5)
func(1,2,3,4,5,6)
func(1,2)
定义一个函数可以接收1-3个实参
def func2(a, b=None, c=None):
pass
func2(1)
func2(1, 2)
func2(1, 2, 3)
不确定函数能接收多少个实参,那么就可以使用不定长位置参数
特点
● 可以不接收实参
● 可以接收无数实参
接受所有实参都以元组的数据类型进行存储
使用格式:在函数定义的()中*args
def func(*args):
print(args)
print(f'接收的数据类型储存格式:{type(args)}')
func() # () <class 'tuple'>
func(1)
func(1, 2)
func(1, 2, 3)
func(1, 2, 3, 4)
不定长关键字参数
在定义函数的时候可以使用**kwargs接收不定长关键字参数
● 传递关键字参数可以有,可以无数个
● 传递关键字参数都是以键值对的方式存储,也就是字典格式
def func(**kwargs):
print(f'数据值:{kwargs}')
print(f'数据类型:{type(kwargs)}')
func() # <class 'dict'>
自定义关键字的名字赋值数据
func(a=1, b=2, c=3)
func(x=1, y=2, z=3)

浙公网安备 33010602011771号