43、函数参数

小白量化 2025-12-09 16:56:24 26 举报

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="中国")


量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0
DEPRECATED: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated (/data/user/htdocs/xiunophp/xiunophp.min.php:48)