Рассмотрим следующий код на C:
for(int i=0; i<10 && some_condition; ++i){
do_something();
}
Я хотел бы написать что-то подобное на Python. Лучшая версия, о которой я могу думать, это:
i = 0
while some_condition and i<10:
do_something()
i+=1
Честно говоря, мне не нравятся циклы while
, которые имитируют циклы for
. Это связано с риском того, что вы можете забыть увеличить значение счетчика. Другой вариант, который учитывает этот риск:
for i in range(10):
if not some_condition: break
do_something()
Важные пояснения
some_condition
не предназначен для вычисления во время цикла, а скорее для указания, запускать ли цикл в первую очередь
Я ссылаясь на Python2. 6
Какой стиль предпочтительнее? Есть ли для этого более подходящая идиома?