You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python函数传参疑问:如何将输入值传递给summation函数?

解决函数参数传递的问题

嘿,刚学Python遇到参数传递问题太正常了,我来帮你理顺清楚~

首先看你当前代码的问题:你输入数字时只是把输入转成了整数,但没有把这些数值保存下来,所以调用summation()的时候根本没传任何参数,函数里的numbers是空元组,自然返回0啦。

解决步骤

你的summation函数用了*numbers这种可变位置参数,它可以接收多个单独的数值作为参数。我们只需要把输入的数字先存起来,再传递给函数就行:

  1. 先创建一个空列表,用来存储每一个输入的数字;
  2. 在输入循环里,把每次输入的整数添加到列表中;
  3. 调用函数时,用*把列表里的元素“展开”成单个参数传递给函数。

修改后的完整代码

def summation(*numbers):
    add = 0
    for y in numbers:
        add = add + y
    return add

n = int(input("How many numbers you want to add: "))
# 创建空列表存储输入的数字
input_numbers = []
for x in range(1, n + 1):
    # 将输入的整数添加到列表中
    num = int(input("Enter number: "))
    input_numbers.append(num)

# 用*展开列表,把每个元素作为单独参数传给summation
print("Sum:", summation(*input_numbers))

关键知识点解释

  • 函数定义里的*numbers:会把传入的多个位置参数打包成一个元组,供函数内部遍历使用;
  • 调用时的*input_numbers:会把列表(或元组)里的元素拆分成单个的位置参数,比如input_numbers是[5, 3, 7],summation(*input_numbers)就等价于summation(5, 3, 7),完美匹配函数的参数要求。

另外你原来代码里两次调用summation()是多余的,只需要调用一次就能得到正确的求和结果哦~

内容的提问来源于stack exchange,提问作者user13899130

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 12:27:36