我不明白这段代码的工作原理:
i = 1
while False:
if i % 5 == 0:
break
i = i + 2
print(i)
while False
是什么?什么是假的?我不明白......
答案 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);