我是 Python 新手,正在尝试学习 While 循环。
list1 = [1,2,3,4,5,6,7]
a = max(list1)
idx = len(list1)-1
while a>4:
a = list1[idx]
print(a)
idx = idx-1
当我使用“while a>4”时,我期望输出仅为 [7,6,5],但我得到的输出为 [7,6,5,4]。
我哪里做错了?
谢谢你
问题在于,在执行循环体之前检查了 while 循环条件。在您的情况下,当
a
变为 4
时,条件 a > 4
对于上一次迭代仍然为真,因此循环体会再次执行,打印值 4
。
要解决此问题,您可以修改 while 循环条件以检查
a
的值,然后再将其分配给列表中的当前元素。
示例:
idx = len(list1) - 1
a = list1[idx]
while a > 4:
print(a)
idx -= 1
if idx >= 0:
a = list1[idx]
else:
break
a > 4
,确保
仅打印大于 4
的元素。