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

Python实现温度录入转换统计功能时代码报不可迭代错误求助

错误原因排查
  1. 你贴出的代码本身不会触发「对象不可迭代」报错,如果你实际运行时收到该报错,优先检查你本地运行的代码是否意外修改了arr变量的类型,比如是否在后续代码里把arr赋值成了整数、字符串这类非可迭代类型,覆盖了原本的array数组对象。
  2. 你贴出的代码存在严重逻辑错误:转换华氏度的循环中,你用了全局变量temp_c计算,这个变量存储的是你最后一次输入的摄氏温度,会导致所有转换后的华氏度数值完全相同,不符合需求。
修复方案

按你提的需求,完整修复后的代码如下:

import array

# 初始化存储摄氏温度的float类型array数组
c_arr = array.array("f", [])
print("请输入连续10天的摄氏温度:")
for i in range(10):
    temp_c = float(input(f"请输入第{i+1}天的摄氏温度:"))
    c_arr.append(temp_c)

# 输出摄氏温度数组
print("摄氏温度数组:", c_arr)

# 转换为华氏温度数组
f_arr = array.array("f", [])
for c in c_arr:
    f = c * 1.8 + 32
    f_arr.append(f)
print("华氏温度数组:", f_arr)

# 设定阈值统计三类天数:<20℃凉爽,20~29℃温暖,≥30℃炎热
cool = warm = hot = 0
for c in c_arr:
    if c < 20:
        cool += 1
    elif 20 <= c < 30:
        warm += 1
    else:
        hot += 1
print(f"凉爽天数:{cool}天,温暖天数:{warm}天,炎热天数:{hot}天")
关键修改点
  • 遍历摄氏温度数组计算华氏度时,使用每次迭代取出的当前温度值c计算,而非最后一次输入的临时变量
  • 补全了需求要求的输出摄氏温度数组、温度分类统计的逻辑
  • 优化输入提示更友好,温度输入改用float类型支持小数温度输入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:45:06