我正在试图从被平方的列表中找出数字之和。
x_sequence = [1, 2, 3, 4, 5]
total = 0
for i in x_sequence:
total = total + (i * i)
if i % 5 == 0:
continue
print(total)
output: 30这首先是简单的,它正确地工作,打印出30,也就是正方形(1+2+3+4),但是如果我试图只从for循环中打印出最后一个数字,它就会打印出55,而不是30,如下所示:
x_sequence = [1, 2, 3, 4, 5]
total = 0
for i in x_sequence:
total = total + (i * i)
if i % 5 == 0:
continue
print(total)
output: 55我不知道它为什么会这样?我试着用我喜欢的方式替换i = i + (i * i),但是如果我从列表中删除3或4,它就给了我30,这是我不希望看到的。
我想要做到这一点:将列表中的所有数字平方,找出平方列表数的和,如果有一个平方数,在除以5后给出0提示,跳过它。
发布于 2021-12-02 09:57:14
在第一个代码段中,您在循环中打印,但是如果值是5的倍数,则不会打印总计。相反,如果i的值是5的倍数,则继续循环。由于5是列表中的最后一个元素,所以循环结束,您将什么都不打印。
在第二段代码中,一旦循环完成,就会打印出总结果。
但是,在这两种情况下,总数都将包括添加的25 (来自5 * 5)。区别在于,在第一段代码中,您没有打印该值。
如果不希望将5的倍数包含在总数中,则需要在进行乘法和添加到total之前进行检查
if i % 5 == 0:
continue
total = total + (i * i)https://stackoverflow.com/questions/70197270
复制相似问题