当传递 (1 , 4 , 3 , 10) 并作为变量 test_1=(1 , 4 , 3 , 10) 时,将函数与 *arg 相乘

问题描述 投票:0回答:1

我正处于学习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))

我期望两个打印语句的结果应该相同

python tuples arguments
1个回答
0
投票

错误是您在第二个“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 个参数而不是一个元组。

© www.soinside.com 2019 - 2024. All rights reserved.