Я читаю книгу на Python3 (Представляя Python Биллом Лубановичем), и наткнулся на то, что я не был уверен в предпочтении Python или просто «упрощении» из-за того, что я был книги и пытается описать что-то еще.while True vs while {condition}
Это о том, как писать в файл, используя куски вместо одного снимка.
poem = '''There was a young lady named Bright,
Whose speed was far faster than light;
She started one day
In a relative way,
And returned on the previous night.'''
fout = open('relativity', 'wt')
size = len(poem)
offset = 0
chunk = 100
while True:
if offset > size:
break
fout.write(poem[offset:offset+chunk])
offset += chunk
fout.close()
Я собирался спросить, почему она имеет while True
вместо while (offset > size)
, но решил попробовать это для себя, и увидел, что while (offset > size)
не делает ничего в моей консоли Python.
Это просто ошибка в консоли или Python действительно требует, чтобы вы перемещали условие внутри цикла while? Со всеми изменениями, чтобы сделать его как можно более минимальным, это кажется очень многословным.
(я происхожу из фона в Java, C# и JavaScript, где условие как определение для цикла является стандартным.)
EDIT
Благодаря комментарий хпх, я понял, что у меня была неправильная логика в том, что у меня было бы условия.
Это возвращает меня к более ясному вопросу, который я изначально хотел, чтобы сосредоточиться на:
ли Python предпочитают делать while True
и есть условие использовать break
внутри цикла, или это просто оплошность автора как он пытался объяснить другую концепцию?
Логическим эквивалентом будет 'while offset <= size' wouldn'y it? – xnx
Touche, спасибо. Я написал, что, понимая, что это должно быть здесь, а не в Code Review, где я изначально собирался опубликовать это. Затем я обнаружил, что то, что, как я думал, должно работать, не помогло, что не подходит для этого сайта. Под редакцией! – krillgar
И, конечно же, поэтому моя попытка в консоли ничего не сделала. Это половина проблемы, но не отвечает ** ПОЧЕМУ **. – krillgar