有没有方法可以对range函数得到的值进行求和?

0 投票
2 回答
55 浏览
提问于 2025-04-14 15:59

我刚开始学Python,对循环、范围和求和这些概念感到很困惑...

# Input
x = int(input("Number of pages: "))
y = int(input("Random value: "))

# Operasi
for result in range(0, x + y, y):
    ones = result % 10
    print(sum(ones))

这是我之前写的代码,我想实现的目标是:
“这次,Rizz先生对他拥有的课程书的页数进行了计算。他会为一本书选择一个随机值。接下来,Rizz先生会把所有能被这个随机值整除的总页数中的1的数量加起来。”(例如,如果x = 12,y = 2,那么范围应该是[0, 2, 4, 6, 8, 0, 2])

现在,我该如何把范围内所有的值加起来呢?它总是说不能迭代。抱歉,我的英语不是很好,如果有任何不清楚的地方,请随时问我。

2 个回答

0

在这一行:

for result in range(0, x + y, y):

你给了一个指令,让你的“result”变量在每次循环中代表一个值,这个值是根据范围内的指示来决定的(从0开始,到x+y结束,步长为y)。

在for循环的主体部分,你创建了一个变量“ones”,它在每次函数运行时会取一个不同的值。然后,在函数的主体中,你尝试从这个值中计算总和。

为了计算在for循环中得到的元素的总和,你可以创建一个列表,比如:

list = []

当然,你应该在循环外面创建这个列表(在开始循环之前),否则它会在每次循环时被删除并重新创建。

如果你想把来自for循环内部的一个元素添加到列表中,可以使用.append()这个函数。

接下来的步骤中,你就可以使用最开始用的sum()函数来计算总和了。

只要记住,你在函数内部创建的变量只在函数内部存在(这是一个局部变量)。而你在循环内部创建的变量只在一次循环中存在。

2

根据你的代码作为起点,你可能想要在一个变量中累加一个总数:

x = int(input("Number of pages: "))
y = int(input("Random value: "))

total = 0
for result in range(0, x + y, y):
    total += result % 10
print(total)

另外,如果你想用这个range()的定义来配合sum()使用,你可以试试:

x = int(input("Number of pages: "))
y = int(input("Random value: "))
total = sum(result % 10 for result in range(0, x + y, y))
print(total)

撰写回答