我試圖從平方的串列中找到數字的總和。
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
我想知道為什么會這樣?我試圖將 total 替換為我喜歡的:i = i (i * i)但是如果我也從串列中洗掉 3 或 4 個我不希望洗掉的,它會給我 30。
我想實作這個:對串列中的所有數字進行平方,找到平方串列數字的總和,如果有一個平方數除以5后給出0提示,則跳過它
uj5u.com熱心網友回復:
兩個代碼塊末尾的總值是 55。唯一的區別是在最后一次迭代時,i % 5 等于 0(繼續),跳過了最后一次加法的列印 (25)。
如果您不想在達到 5 時對平方求和,請在將其求和到 total 變數之前移動跳過條件:
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
uj5u.com熱心網友回復:
在第一個代碼段列印的回圈中,但如果該值的倍數,5你會不會列印總量。相反,如果 的值i是 的倍數,5則繼續回圈。由于5是串列中的最后一個元素,回圈結束,您根本不會列印任何內容。
在第二個代碼中,一旦回圈完成,您將列印總結果。
但在這兩種情況下,總數將包括添加的25(來自5 * 5)。不同之處在于在第一個代碼中您不列印該值。
如果您不希望5總數中包含的倍數,那么您需要在進行乘法和加法運算之前進行檢查total:
if i % 5 == 0:
continue
total = total (i * i)
uj5u.com熱心網友回復:
您在 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://www.uj5u.com/gongcheng/372455.html
