Python如何将华氏度列表转换为摄氏度并解决列表与整数运算报错
报错原因解释
你收到的报错unsupported operand type(s) for -: 'list' and 'int'翻译为:不支持「列表」和「整数」执行减法操作。
核心问题有两个:
- Python原生列表不支持直接和整数做算术运算,你代码里直接写
fah - 32相当于用整个列表减32,不符合语法要求 - 你的while循环没有对
count做递增操作,运行后会进入无限循环,循环内定义的lst变量也没有实际使用
可行的实现方案
方案1:列表推导式(最简洁的写法)
直接遍历列表中的每一个华氏度值做转换:
fah = [89.8, 67.0, 92, 99] cen = [(x - 32) * 5 / 9 for x in fah] print(cen)
方案2:修正后的while循环写法
如果你需要保留循环逻辑,调整代码如下即可:
fah = [89.8, 67.0, 92, 99] count = 0 cen = [] while count < len(fah): current_fah = fah[count] current_cen = (current_fah - 32) * 5 /9 cen.append(current_cen) count += 1 print(cen)
如果需要对转换后的摄氏度保留指定小数位,可以在计算时用round()函数处理,比如round((x - 32) * 5 / 9, 2)即可保留2位小数。
内容的提问来源于stack exchange,提问作者Muskaan Sharma
相关产品推荐
相关产品推荐

