python参数一个星号_python变量前加星号「建议收藏」

python参数一个星号_python变量前加星号「建议收藏」1、问题描述  当我们在使用python进行编码时,发现里面有“”或者“**”,总是分不清楚他们的区别,这也导致不知道我们如何去使用它

python参数一个星号_python变量前加星号「建议收藏」"

1、问题描述
  当我们在使用python进行编码时,发现里面有单星号或者双星号,总是分不清楚他们的区别,这也导致不知道我们如何去使用它。下面,我将介绍单星号或者双星号的使用情况。
2、单星号使用情况
(1)元组解包
  在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致;也可以在变量前边添加一个星号,这样变量将会获取元组中所有剩余的元素。
代码如下:

my_tuple = 10, 20, 30, 40
a, b, *c = my_tuple
# 输出:10 20 [30, 40]
print(a, b, c)

(2)用于不定长参数传参
  在定义函数时,可以在形参前边加上一个*,这样这个形参将会获取到所有的实参。
  比如:*nums会接受所有的位置实参,并且会将这些实参统一保存到一个元组中(装包)。代码如下:

# 参数以元组(tuple)的形式导入
def sum1(*nums):
    # 定义一个变量,来保存结果
    result = 0
    # 遍历元组,并将元组中的数进行累加
    for n in nums:
        result += n
    print(result)

# 执行,输出:6
sum(1,2,3)
  • 1、带星号的形参只能有一个,可以和其他参数配合使用。
# 第一个参数给a,第二个参数给b,剩下的都保存到c的元组中
def fn1(a, b, *c):
    print('a =', a)
    print('b =', b)
    print('c =', c)

# 执行
#输出结果如下:参数c包含两个数据3,4。
	#a = 1
	#b = 2
	#c = (3, 4)
"""
fn1(1, 2, 3, 4)
  • 2、可变参数不是必须写在最后,但是注意,带*的参数后的所有参数,必须以关键字参数的形式传递。
# 第一个参数给a,剩下的位置参数给b的元组,c必须使用关键字参数。
def fn2(a, *b, c):
    print('a =', a)
    print('b =', b)
    print('c =', c)

# 执行,参数c以关键字参数传递。
""" 输出结果如下: a = 1 b = (2, 3) c = 4 """
fn2(1, 2, 3, c=4)

3、双星号使用情况
双星号(**):**kwargs表示将参数以字典的形式导入。
(1)接收其他的关键字参数,它会将这些参数统一保存到一个字典中。
  字典的key就是参数的名字,字典的value就是参数的值。

def fn3(a, b, **c):
    print('a =', a)
    print('b =', b)
    print('c =', c)


""" 输出: a = 1 b = 2 c = {'c': 3, 'd': 4} # 是一个字典类型的数据 """
fn3(a=1, b=2, c=3, d=4)
""" 输出: a = 1 b = 2 c = {'c': 3, 'd': 4} """
fn3(1, 2, c=3, d=4)

(2)对字典进行一个解包

def fn4(a, b, c):
    print('a =', a)
    print('b =', b)
    print('c =', c)

# 创建一个字典
d = { 
   'a': 100, 'b': 200, 'c': 300}
""" 输出: a = 100 b = 200 c = 300 """
fn4(**d)

(3)这两个用法可以同时出现在一个函数中

""" 输出: 1 2 (3, 4) {'e': 5, 'f': 6, 'g': 7} """
def foo(a, b=10, *args, **kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)


foo(1, 2, 3, 4, e=5, f=6, g=7)
  • **形参只能有一个,并且必须写在所有参数的最后。

今天的文章python参数一个星号_python变量前加星号「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89032.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注