以下程序来自python一书。在此代码中,count首先设置为0,然后使用ls -l /etc/apache2/sites-enabled/
lrwxrwxrwx 1 root root 26 Mär 7 09:18 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 38 Mär 28 03:56 domain-1.de -> ../sites-available/domain-1.de
lrwxrwxrwx 1 root root 39 Mär 28 03:56 domain-2.de -> ../sites-available/domain-2.de
。在本书中,我读到零和空字符串被评估为False,而所有其他值被评估为True。如果是这种情况,那么程序如何执行while循环?当计数设置为0时,不会将计数评估为False
有人可以解释一下吗?
<VirtualHost *:80>
ServerName domain-2.de
ServerAlias www.domain-2.de
DocumentRoot /var/www/domain-2.de
</VirtualHost>
答案 0 :(得分:2)
如果您评估
if count: # and count is zero
break
然后确定 - 循环将立即中断。 但是你正在评估这个表达式:
if count > 10: # 0 > 10
是False
,因此您不会在第一次迭代时中断。
答案 1 :(得分:1)
如果您将super().some_method(arg1, arg2)
更改为while True:
,那么您的假设确实是正确的
答案 2 :(得分:1)
在代码部分while True
中,条件将始终评估为true。现在让我们进入while循环。
当评估count > 10
时,对于count = 0,它是假的,所以当count&lt; 10,它不会突破while循环。
如果是while count:
是的,它会在第一次迭代中脱离循环,因为while count:
相当于 - while count != 0
对于条件count == 5
,它会继续下一次迭代,并且不会在循环内打印。
答案 3 :(得分:1)
你没有说while count:
你说while True:
因为True
总是True
,你的循环将永远运行,除非内部的东西告诉它不要。这可能是一行break
,或者可能是一个例外。如果count
大于10
,您的循环就会中断。 count
从零开始,但在第一次迭代时,count += 1
发生,count
现在为1。由于count
不大于10,因此不会中断。由于count
不等于5
,因此它也不会继续。它所做的就是打印1
。在下一次迭代中,count
再次递增,if
语句也会发生同样的事情。直到最终,count
等于4
的迭代结束才是相同的。由于True
仍为True
,因此迭代会再次发生。 count
递增,现在等于五。 if count > 10:
语句为False
,但if count == 5:
为True
,因此循环只会跳过print
调用并返回循环的开头。它得到的第一件事是count += 1
,所以count
现在等于六。接下来的几次迭代非常类似于count
之前发生的五次迭代。一旦发生count
为9的迭代,它就会到达循环的开头并递增count
。现在count
为10,循环中断。
答案 4 :(得分:0)
while循环是一个循环,它将运行一部分代码,直到条件为False。
而True 被称为无限循环,因为True不是条件因此无法更改。所以循环将一直运行,直到找到break指令。
这里有两个与循环相关的特殊元素: