Цикл for определенно более питоничен, поскольку использует встроенную функциональность Python более высокого уровня, чтобы передать то, что вы делаете, более четко и кратко.Издержки range против xrange и присвоения неиспользованной переменной i
возникают из-за отсутствия оператора, подобного оператору Verilog repeat
.Основная причина, по которой стоит придерживаться решения для диапазона, заключается в том, что другие способы более сложны.Например:
from itertools import repeat
for unused in repeat(None, 10):
del unused # redundant and inefficient, the name is clear enough
print "This is run 10 times"
Использование повторения вместо диапазона здесь менее понятно, потому что это не так хорошо известная функция, и более сложное, потому что вам нужно импортировать ее.Основными руководствами по стилю, если вам нужна ссылка, являются PEP 20 - Zen of Python и PEP 8 - Руководство по стилю для кода Python .
Мы также отмечаем, что версия для диапазона является явным примером, используемым как в справочнике по , так и в учебнике , хотя в этом случае используется значение.Это означает, что форма обязана быть более знакомой, чем в то время как расширение цикла в стиле C для.