Python - 当假类型循环

10 投票
4 回答
86028 浏览
提问于 2025-04-17 22:06
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:来代替。

撰写回答