有没有方法可以对range函数得到的值进行求和?
我刚开始学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)