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

Python for循环调用input报参数数量错误如何修复

问题根因

input() 是Python内置函数,仅支持传入1个字符串类型的提示文本参数,你在循环内调用时分别传入了"Assignment"、i + 1、"max?"三个独立参数,因此触发「input expected at most 1 argument, got 3」报错。

修复方案

将三个分散的参数拼接为一个完整的提示字符串后再传入input()即可,推荐使用f-string语法实现字符串拼接,写法简洁可读性高。
另外你当前代码还有两处需要调整的细节:

  • 收集作业实际得分的input提示语和满分提示语重复,需要修改区分
  • 注释存在拼写错误、逻辑描述偏差可同步修正

修复后完整代码

# 定义作业分数统计函数
def home_work():
    # 询问作业占总分数的权重
    weight = int(input("Weight (0-100)? "))
    # 询问作业数量,确定循环次数
    assignment_count = int(input("Number of assignments? "))

    # 循环收集每份作业的得分和满分
    for i in range(assignment_count):
        # 提示用户输入当前作业的实际得分
        assignment_score = int(input(f"Assignment {i + 1} score? "))
        # 提示用户输入当前作业的满分
        max_score = int(input(f"Assignment {i + 1} max? "))

# 调用函数
home_work()

如果你需要兼容更早版本的Python,也可以用+做字符串拼接,替换对应的input行即可:

assignment_score = int(input("Assignment " + str(i + 1) + " score? "))
max_score = int(input("Assignment " + str(i + 1) + " max? "))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:36:03