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

求1到1000范围内不含数字5的数值总和 Python新手代码求指导

代码问题说明&正确实现

现有代码存在的问题

  • 循环范围不符合需求:要计算1~1000的数值,现在range(0,1001)会从0开始遍历,虽然0不影响总和,但逻辑和需求不符。
  • 冗余的i += 1:for循环遍历range时,每次迭代的i会自动更新,手动修改i的值不会对下一次循环生效,这行代码可以直接删掉。
  • print语句缩进错误:现在print在for循环内部,每遍历一个数就会打印一次当前累加值,最终会输出1001行结果,你需要把print移到循环外,只输出最终总和。
  • 不建议用sum作为变量名:sum是Python内置的求和函数,自定义变量覆盖内置函数名会导致后续无法正常调用内置sum功能,建议替换为total之类的变量名。

修正后代码

total = 0
# range左闭右开,要包含1000需要写结束值为1001
for i in range(1, 1001):
    if '5' not in str(i):
        total += i
print(total)

更简洁的写法

可以直接用内置sum函数加生成器表达式实现,逻辑和上面的循环完全一致:

total = sum(i for i in range(1, 1001) if '5' not in str(i))
print(total)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:09:03