“假的”是什么意思?

时间:2017-06-10 12:18:11

标签: python python-3.x while-loop

我不明白这段代码的工作原理:

i = 1
while False:
    if i % 5 == 0:
        break
    i = i + 2
print(i)

while False是什么?什么是假的?我不明白......

4 个答案:

答案 0 :(得分:7)

while loop在每次迭代之前检查False后面的条件(嗯,表达式),并在条件为while False时停止执行循环体。

所以while意味着循环体永远不会执行。循环中的所有内容都是“死代码”。到目前为止,Python-3.x将“优化”def func(): i = 1 while False: if i % 5 == 0: break i = i + 2 print(i) import dis dis.dis(func) - 循环,因为:

  Line        Bytecode

  2           0 LOAD_CONST               1 (1)
              3 STORE_FAST               0 (i)

  7           6 LOAD_GLOBAL              0 (print)
              9 LOAD_FAST                0 (i)
             12 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
             15 POP_TOP
             16 LOAD_CONST               0 (None)
             19 RETURN_VALUE

给出以下内容:

while

这意味着编译后的函数甚至不知道有while循环(没有第3-6行的指令!),因为{{1}} - 循环无法进行执行。

答案 1 :(得分:1)

while True:

意味着它将永远循环。

while False:

意味着它不会执行。

答案 2 :(得分:1)

既然 while False 永远不会运行,它是否也可以用作一种“注释”来禁用您想要调试或删除但不删除的代码部分?我知道有更好的方法可以做到这一点,但这只是我的想法。

答案 3 :(得分:0)

它说如果事情不是真的这样做。例如:

while (0 == 0) == False: # this statement is false since 0 does equal 0.
     print('hi') # this will do nothing since the past statement is false.

同时

var alphabet = "ABCDEFGHIJKLMNOPQRST".split("");

var x0 = d3.scale.ordinal()
    .domain(alphabet)
    .rangeBands([0, width], .2);