Python实现温度录入转换统计功能时代码报不可迭代错误求助
错误原因排查
- 你贴出的代码本身不会触发「对象不可迭代」报错,如果你实际运行时收到该报错,优先检查你本地运行的代码是否意外修改了
arr变量的类型,比如是否在后续代码里把arr赋值成了整数、字符串这类非可迭代类型,覆盖了原本的array数组对象。 - 你贴出的代码存在严重逻辑错误:转换华氏度的循环中,你用了全局变量
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
相关产品推荐
相关产品推荐

