2 回答

TA貢獻1824條經驗 獲得超5個贊
正如 Micheal 提到的,while 循環中的最后一條k +=3語句將被執行,然后退出循環。您需要將您的限制(即 19)和 k 的初始值(即 5)減去 3,或者將最后的 +3 操作反轉k -=3。
解決方案一:
p=0
k=2
while k < 16:
k += 3
p += k
print("k =",k)
else:
print(k*2)
print(p)
解決方案2:
p=0
k=5
while k < 19:
print("k =",k)
p += k
k += 3
else:
k -= 3
print(k*2)
print(p)

TA貢獻1775條經驗 獲得超8個贊
結束循環后,for loop計數器始終是最后一個可接受的數字,即 17,但while loop我們手動向計數器添加了 3,因此結束后,while loop計數器具有最后的修改值,即 20。這就是為什么我們應該將 k 減少 3 行print(k*2)。該行else:也是多余的,因此您可以省略它。
print("for version")
p=0
for k in range (5,19,3):
print("k=",k)
p+=k
print(k*2)
print(p)
print("while version")
p=0
k=5
while k<19:
print("k =",k)
p += k
k += 3
print((k-3)*2)
print(p)
添加回答
舉報