Можно создать дубликат:
while (1) Vs. for while(True) — Why is there a difference?Пока True или пока 1?
я иногда вижу в других людей кода "а 1" вместо "в то время как True". Я думаю, что использование True более pythonic, но я хотел проверить, есть ли любая разница на практике.
Поэтому я попытался сделать следующее, и результат удивителен. Для чего Я вижу, что интерпретатор может оптимизировать 1 конвертирование 1 boolean , в то время как он не с True, напротив того, что предположил я .
Любой может объяснить мне, почему это, или, может быть, мое заключение не так?
def f1():
while 1:
pass
def f2():
while True:
pass
In [10]: dis.dis(f)
2 0 SETUP_LOOP 3 (to 6)
3 >> 3 JUMP_ABSOLUTE 3
>> 6 LOAD_CONST 0 (None)
9 RETURN_VALUE
In [9]: dis.dis(f1)
2 0 SETUP_LOOP 10 (to 13)
>> 3 LOAD_GLOBAL 0 (True)
6 POP_JUMP_IF_FALSE 12
3 9 JUMP_ABSOLUTE 3
>> 12 POP_BLOCK
>> 13 LOAD_CONST 0 (None)
16 RETURN_VALUE
Это никогда не имеет значения, потому что, по-видимому, настоящий код не проходит. Поэтому предпочитают читаемость. –