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

使用Python列表推导式求解欧拉问题6平方和差报错原因咨询

错误原因排查
  • 直接触发TypeError: 'int' object is not iterable的原因是:sum()函数强制要求传入可迭代对象(如列表、range、生成器等),但你代码中sum(a)和sum(a*a)里的a是range(100)迭代出来的单个整数,单个整数不属于可迭代对象,传入sum()直接抛出类型错误。
  • 存在逻辑错误:你用列表推导式生成的是两个列表,Python原生列表不支持直接用-运算符做差值运算,即使修复第一个类型错误,后续也会抛出操作数类型不支持的报错。
  • 取值范围错误:欧拉问题6要求计算1到100的差值,你用的range(100)生成的是0到99的整数,取值范围不符合题目要求。
正确单行实现方案
print(sum(range(1, 101)) ** 2 - sum(i * i for i in range(1, 101)))

代码逻辑说明:

  • 前半段sum(range(1, 101)) ** 2:先计算1到100所有整数的和,再对和做平方运算,得到「和的平方」。
  • 后半段sum(i * i for i in range(1, 101)):遍历1到100的每个整数计算平方,再对所有平方值求和,得到「平方的和」。
  • 两者做差即为欧拉问题6要求的最终结果,运行后输出值为25164150。

内容的提问来源于stack exchange,提问作者Никита Петров

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:24:02