我正在试图从被平方的列表中找出数字之和。
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:58:26
两个代码块结尾处的总价值为55。唯一的区别是,在最后一次迭代中,i%5等于0(继续),跳过了最后一个加法(25)的打印。
如果在达到5时不想将平方求和,那么在将其加到总变量之前,移动跳过条件:
x_sequence = [1, 2, 3, 4, 5]
total = 0
for i in x_sequence:
if i % 5 == 0:
continue
total = total + (i * i)
print(total)
> 30发布于 2021-12-02 09:57:14
在第一个代码段中,您在循环中打印,但是如果值是5的倍数,则不会打印总计。相反,如果i的值是5的倍数,则继续循环。由于5是列表中的最后一个元素,所以循环结束,您将什么都不打印。
在第二段代码中,一旦循环完成,就会打印出总结果。
但是,在这两种情况下,总数都将包括添加的25 (来自5 * 5)。区别在于,在第一段代码中,您没有打印该值。
如果不希望将5的倍数包含在总数中,则需要在进行乘法和添加到total之前进行检查
if i % 5 == 0:
continue
total = total + (i * i)发布于 2021-12-02 10:03:14
在if条件之前,您正在将平方值添加到总数中,因此所有的数字(包括5的平方)也将被添加到总数中。试试这个:
x_sequence = [1, 2, 3, 4, 5]
total = 0
for i in x_sequence:
if i % 5 == 0:
continue
total += i * i
print(total)https://stackoverflow.com/questions/70197270
复制相似问题