Цикл с условиями в python

Рассмотрим следующий код на 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()

Важные пояснения

  1. some_condition не предназначен для вычисления во время цикла, а скорее для указания, запускать ли цикл в первую очередь

  2. Я ссылаясь на Python2. 6

Какой стиль предпочтительнее? Есть ли для этого более подходящая идиома?

10
задан Boris Gorelik 1 December 2010 в 11:59
поделиться