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