Python - 当假类型循环
fn='a'
x=1
while fn:
print(x)
x+=1
if x==100:
fn=''
输出: 1 ... 99
fn=''
x=1
while fn:
print(x)
x+=1
if x==100:
fn='a'
输出: while 循环没有运行。
为什么 while 循环没有运行呢?
是不是因为结束 while 循环的条件是 '假',所以它无法执行 '假' 的循环呢?
4 个回答
0
想象一下你的循环条件可以这样理解:
fn=''
x=1
while len(fn)>0:
print(x)
x+=1
if x==100:
fn='a'
while 在每次循环开始时,都会检查这个字符串是否为空。
2
在Python的条件语句中:
''
(空字符串)和 False
(假)以及 0
(零)还有 []
(空列表)是一样的,都是表示“假”的意思。
5
这个循环的条件其实是一个“前置”条件(和C语言里的“后置”条件“do-while”循环相对)。它会在每次循环开始之前检查条件,包括第一次循环。
在第一次循环时,条件是假的,所以循环会立刻结束。
20
如果你想要实现'while false'的效果,你可以使用not
。试试用while not fn:
来代替。