1、参数
# 示例 def add(): a = 1 b = 2 return a + b # 调用函数并输出返回值 print(add()) print(add()) print(add())
1.1 形参&实参
形参:函数定义时指定的参数。
在函数被调用之前,并不实际存储任何值。只在函数被调用时才会被赋予具体的值,这些值来自于函数调用时提供的实参。
实参:调用函数时传递给函数的实际值。这些值被赋值给函数的形参,以便函数能够使用它们来执行其定义的操作。
# 示例 def add(a, b): # a, b是形参 # a = 1 # b = 2 return a + b # 调用函数并输出返回值 print(add(1, 2)) # 1, 2 是实参 print(add(2, 3)) # 2, 3 是实参 print(add(5, 10)) # 5, 10 是实参
1.2 函数参数形式
(1)位置参数[必备参数]
实参和形参的顺序和个数必须保持一致。
# 示例
def func(a, b, c):
print("a:", a)
print("b:", b)
print("c:", c)
# func(1, 2) # TypeError: func() missing 1 required positional argument: 'c'
# func(1, 2, 3, 4) # TypeError: func() takes 3 positional arguments but 4 were given
func(1, 2, 3)
func(3, 2, 1)(2)默认参数[缺省参数]
在函数定义的时候,可以为参数指定默认值。如果函数调用时没有提供该参数的值,则使用默认值。
# 示例1
def func(a=1):
print("a:", a)
func() # a: 1
func(5) # a: 5# 示例2
# 注意:在Python中,定义函数时,非默认参数必须放在默认参数之前。
def func(a, b=1):
print("a:", a)
print("b:", b
func(1)
func(1, 2)(3)可变参数(*参数名)
使用 *args 可以允许函数接收任意数量的位置参数。这些参数会被收集到一个名为args的元组中(尽管你可以使用任意变量名,但args是约定俗成的)
# 示例 def func(*nums): print(nums, type(nums)) func() func(1) func(1, 2, 3, 4, 5) func(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
(4)关键字可变参数(**参数名)
使用 **kwargs 可以允许函数接收任意数量的关键字参数。
这些参数会被收集到一个名为kwargs的字典中(尽管你可以使用任意变量名,但kwargs是约定俗成的
# 示例1 def func(**kwargs): print(kwargs, type(kwargs)) func() func(a=1, b=2, c=3) func(a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, j=10)
# 示例2
def register_user(username, age, **kwargs):
print("用户名:", username)
print("年龄:", age)
# 处理可选的关键字参数
for k, v in kwargs.items():
print(k, ":", v)
register_user("xiaobai", 35)
register_user("susu", 28, city="上海", country="中国")著作权归文章作者所有。 未经作者允许禁止转载!