2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個贊
正如 Micheal 提到的,while 循環(huán)中的最后一條k +=3語句將被執(zhí)行,然后退出循環(huán)。您需要將您的限制(即 19)和 k 的初始值(即 5)減去 3,或者將最后的 +3 操作反轉(zhuǎn)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貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊
結(jié)束循環(huán)后,for loop計數(shù)器始終是最后一個可接受的數(shù)字,即 17,但while loop我們手動向計數(shù)器添加了 3,因此結(jié)束后,while loop計數(shù)器具有最后的修改值,即 20。這就是為什么我們應(yīng)該將 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)
添加回答
舉報