可变位置并打印值
variable positional and printing the values
def minimum (*n):
print(n)
minimum(1)
minimum(1,2)
def func(*args):
print(args)
values1 = (1,2)
values2 = ((1,2), (3,4))
func(values1)
func(values2)
OUTPUT:
(1,)
(1, 2)
((1, 2),)
(((1, 2), (3, 4)),)
Process finished with exit code 0
首先O/p:
我认为 python 期望传递多个参数,因此在 1 之后有一个逗号 (,)。 ?
第二个O/p:
现在 python 看到传递的多个参数没有逗号。它将args存储为一个元组?
第三个 O/p 和第四个 O/p:
为什么还有逗号?即使我通过了 2 个元组假设 python 期待像上面这样的多个元组?
帮我理解一下。
在函数调用 func(value2)
中,您传递了一个参数列表。它应该作为 func(*value2)
传递
func(value2)
--> func(((1, 2), (3, 4)))
func(*value2)
--> func((1, 2), (3, 4))
第一个输出显示一个逗号,因为如果没有它,1
是唯一的元素,(1)
将只是一个整数(括号将表达式 1
括起来),(1,)
用于区分元组和简单括号。
在第二个中,不需要尾随逗号来区分元组,因为有多个元素。
在第三个 O/p 中,您没有传递 1
和 2
,而是传递了整个 (1,2)
,因此它只显示一项(即 (1,2)
)在一个元组中,并添加一个额外的逗号。第四次也一样:你通过了整个 ((1,2), (3,4))
.
def minimum (*n):
print(n)
minimum(1)
minimum(1,2)
def func(*args):
print(args)
values1 = (1,2)
values2 = ((1,2), (3,4))
func(values1)
func(values2)
OUTPUT:
(1,)
(1, 2)
((1, 2),)
(((1, 2), (3, 4)),)
Process finished with exit code 0
首先O/p: 我认为 python 期望传递多个参数,因此在 1 之后有一个逗号 (,)。 ?
第二个O/p: 现在 python 看到传递的多个参数没有逗号。它将args存储为一个元组?
第三个 O/p 和第四个 O/p: 为什么还有逗号?即使我通过了 2 个元组假设 python 期待像上面这样的多个元组?
帮我理解一下。
在函数调用 func(value2)
中,您传递了一个参数列表。它应该作为 func(*value2)
func(value2)
--> func(((1, 2), (3, 4)))
func(*value2)
--> func((1, 2), (3, 4))
第一个输出显示一个逗号,因为如果没有它,1
是唯一的元素,(1)
将只是一个整数(括号将表达式 1
括起来),(1,)
用于区分元组和简单括号。
在第二个中,不需要尾随逗号来区分元组,因为有多个元素。
在第三个 O/p 中,您没有传递 1
和 2
,而是传递了整个 (1,2)
,因此它只显示一项(即 (1,2)
)在一个元组中,并添加一个额外的逗号。第四次也一样:你通过了整个 ((1,2), (3,4))
.