同时循环并将值解释为True或False

  • 本文关键字:True False 解释 循环 python
  • 更新时间 :
  • 英文 :


下面的程序来自python的一本书。在该代码中,count首先设置为0,然后使用while True。在这本书中,我读到零和空字符串被评估为False,而所有其他值都被评估为True。如果是这种情况,那么程序如何执行while循环?当count设置为0时,该count不是评估为False吗?

有人能解释一下吗?

# Finicky Counter
# Demonstrates the break and continue statements
count = 0  
while True:         # while count is True
    count += 1
    # end loop if count greater than 10
    if count > 10:
       break
    # skip 5
    if count == 5:
        continue
    print(count)
input("nnPress the enter key to exit.")

如果您评估

if count: # and count is zero
       break

那么肯定-循环会立即中断。但您正在评估这个表达式:

if count > 10: # 0 > 10

它是False,所以您不会在第一次迭代时中断。

在代码部分while True中,条件将始终计算为true。现在让我们进入while循环。

当评估count > 10时,对于count=0,它是假的,因此当count<0时;10,它不会在while循环中爆发。

如果是while count:是的,它会在第一次迭代中退出循环,因为while count:等效于-while count != 0

对于条件count == 5,它继续到下一次迭代,并且不在循环内打印。

如果将while True:更改为while count:,则您的假设确实是正确的

你没有说while count:你说while True:由于True总是True,除非告诉不要这样做,否则你的循环将永远运行。这可能是一行说break,也可能是引发的异常。如果count大于10,则循环将中断。count从零开始,但在第一次迭代中,count += 1发生,count现在为一。由于count不大于10,因此它不会断裂。由于count不等于5,所以它也不继续。它所做的只是打印1。在下一次迭代中,count再次递增,if语句也会发生同样的情况。直到最终,count等于4的迭代结束,它都是一样的。由于True仍然是True,所以迭代再次发生。count递增,现在等于5。if count > 10:语句是False,但if count == 5:True,因此循环只是跳过print调用并返回到循环的开头。它得到的第一个值是count += 1,所以count现在等于6。接下来的几次迭代与count五次之前的情况非常相似。一旦count为9的迭代发生,它就到达循环的开始并递增count。现在count是10,循环中断。

while循环是一个循环,它将运行一部分代码,直到条件为False
而True被称为无限循环,因为True不是条件,因此不能更改。因此,循环将一直运行,直到找到break指令为止。

这里有两个与循环相关的特殊元素:

  • continue:直接进入下一个迭代
  • 突破:跳出循环

最新更新