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

嵌套循环求和遇TypeError:float对象无法作为整数处理,求解决

问题解决思路与代码

错误原因

  1. range() 要求参数必须是整数,但你传入的 values_subtraction_average 是浮点数(比如5.0、0.0),这直接触发了 TypeError。
  2. 第二个循环逻辑完全错误——你不需要用 range() 遍历差值,而是要对每个差值取绝对值后累加求和。

正确代码实现

方式一:先收集绝对值差值再求和

values = [29, 24, 20, 28, 22, 22, 23]
average = sum(values) / len(values)

# 收集每个值与均值差值的绝对值
abs_diff_list = []
for single_value in values:
    diff = single_value - average
    abs_diff = abs(diff)
    abs_diff_list.append(abs_diff)

# 求和得到目标结果18
total = sum(abs_diff_list)
print(total)  # 输出18.0

方式二:直接累加(更高效,无需额外列表)

values = [29, 24, 20, 28, 22, 22, 23]
average = sum(values) / len(values)

total = 0
for single_value in values:
    diff = single_value - average
    total += abs(diff)

print(total)  # 输出18.0

一行代码简化版(用生成器表达式)

values = [29, 24, 20, 28, 22, 22, 23]
average = sum(values) / len(values)
total = sum(abs(v - average) for v in values)
print(total)  # 输出18.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:47:37