无法按照我的意愿使用Python While循环

问题描述 投票:0回答:1

我是 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]。

我哪里做错了?

谢谢你

python while-loop
1个回答
0
投票

问题在于,在执行循环体之前检查了 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
    的元素。
  • 当条件不再满足时,while 循环停止执行。
© www.soinside.com 2019 - 2024. All rights reserved.