Замените цикл for
оператором блока, который безоговорочно выполняет содержимое:
i = 2
# for i in range(3):
if 1: # Or if you prefer, if True:
print(i)
Теперь отступ ожидается, но, поскольку if 1:
/ if True:
выполняется безоговорочно (в Python 3,на эталонном интерпретаторе CPython они оба полностью оптимизируют if
(он выполняется без какого-либо теста), он ведет себя так же, как версия с ручным управлением.
В качестве альтернативы, без добавления i = 2
ввсе, вы можете сделать цикл for
для одного константного значения:
for i in [2]: # range(3): Old code
print(i)
, чтобы получить тот же эффект.for i in (2,):
(необязательный parens) также будет работать, но та запятая, которая требует один - tuple
s, запутывает много людей, и, как это случается, циклы над list
s константных литералов оптимизируются для циклов над *В любом случае 1018 * константных литералов, поэтому потери производительности не возникают.