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

Python循环输入触发TypeError:如何实现月份降雨量输入存储?

问题分析与修复方案

核心错误原因

触发TypeError是因为**input()函数仅接受单个字符串参数**,但你用逗号传入了多个参数("Enter rainfall amount for ", monthsList[x], ": "),违反了函数调用规则。

另外代码还有两个次要问题:

  1. range(13)会生成0-12共13个索引,但monthsList只有12个月份,索引12会触发索引越界错误
  2. if x == 13: break完全无效,因为range(13)的x最大值为12,永远不会等于13

修复后的代码

monthsList = ["January", "February", "March", "April", "May", "June", "July",
          "August", "September", "October", "November", "December"]  # 修正"Augist"拼写错误

promptList = []

# 循环12次,对应12个月份
for x in range(12):
    # 用f-string拼接提示文本,传给input()单个字符串参数
    num = float(input(f"Enter rainfall amount for {monthsList[x]}: "))
    promptList.append(num)

# 所有输入完成后统一打印列表,避免循环内重复输出
print(promptList)

关键修改点

  • 用f-string(f"...")将提示文本与月份名拼接成单个字符串,满足input()的参数要求
  • 将range(13)改为range(12),匹配月份列表长度,避免索引越界
  • 移除无效的break判断,把print(promptList)移到循环外,优化输出逻辑
  • 修正了monthsList中"Augist"的拼写错误(正确为"August")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:35:48