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

如何对range函数生成的值求和?Python新手技术求助

问题解决:计算可整除页码的个位数字之和

错误根源

你碰到的“不可迭代”报错,是因为sum()函数必须接收可迭代对象(比如列表、元组这类能逐个取出元素的集合),但你传的ones是单个整数——每个页码的个位数字是一个单独的数,不是可迭代的集合,所以函数没法处理。

另外你的range(0, x + y, y)还会包含超过页码上限x的数(比如x=12、y=2时,会生成14,但教材页码只到12),这部分逻辑也得修正。

修正后的代码(两种写法)

写法一:逐个累加(新手更易理解)

# 输入页码数和随机值
page_count = int(input("Number of pages: "))
step = int(input("Random value: "))

total = 0
# 遍历所有≤page_count且能被step整除的页码(从step开始,跳过0)
for page in range(step, page_count + 1, step):
    # 取当前页码的个位数字
    last_digit = page % 10
    # 累加到总和里
    total += last_digit

print(total)

写法二:先收集再求和(用sum函数)

如果一定要用sum(),可以先把所有个位数字存到列表里,再传给sum:

page_count = int(input("Number of pages: "))
step = int(input("Random value: "))

last_digits = []
for page in range(step, page_count + 1, step):
    last_digits.append(page % 10)

print(sum(last_digits))

示例验证

拿你说的x=12、y=2的情况测试:
生成的有效页码是2、4、6、8、10、12,对应的个位数字是2、4、6、8、0、2,总和是2+4+6+8+0+2=22,运行代码会输出正确结果22。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:19:51