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)
添加回答
举报