我正处于学习Python的早期阶段,我正在尝试
*arg
功能。我无法弄清楚为什么如果以不同方式传递相同的值,下面的函数会报告不同的结果。我正在使用 Jupyter 笔记本。为什么下面代码中 2 print 的值不同
## Multiple function using *arg
def multiply_all(*args):
m = 1
for i in args:
m*=i
return m
## input provided to function in 2 ways
test_1 = (1 , 4 , 3 , 10)
x = multiply_all(test_1)
print(x)
print(multiply_all(1, 4, 3, 10))
我期望两个打印语句的结果应该相同
错误是您在第二个“print”语句中缺少括号。
## Multiple function using *arg
def multiply_all(*args):
m = 1
for i in args:
m*=i
return m
## input provided to function in 2 ways
test_1 = (1 , 4 , 3 , 10)
x = multiply_all(test_1)
print(x)
print(multiply_all((1, 4, 3, 10))) # changed 1,2,3,4 to (1,2,3,4)
基本上,您传递了 4 个参数而不是一个元组。