Поскольку вы используете for i in range(1, 10)
, не имеет значения, какие изменения вы вносите в i
во время итерации, когда он вернется к for
l oop, ему будет присвоено следующее значение в range
. пример:
for i in range(5):
print(i)
i += 2
Вы ожидаете, что произойдет что-то вроде
>>> 0
>>> 3
, но на самом деле произойдет следующее:
>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
Что здесь произошло? Сначала i
присваивается значение 0
, затем оно было напечатано и увеличено (теперь оно равно 2). Затем i
присваивается значение 1
(из генератора range
), поэтому сделанное вами приращение было отменено.
Чтобы решить эту проблему, используйте while
l oop:
i = 1
while i < 10:
# do stuff
i += 1
Теперь значение i
не будет переопределено каждый раз, когда loop
выполняет