Для цикла в Python выдает в переменной приращения - PullRequest
0 голосов
/ 17 октября 2019

Этот код дает выходные данные 1-9 без влияния i + = 5:

for i in range(1, 10):
    print(i)
    i += 5

В то время как этот код дает выходные данные с i, увеличенными на 5:

for i in range(1, 10):
    print(i)
    i += 5
    print(i)

Можетобъясните пожалуйста это поведение?

1 Ответ

0 голосов
/ 17 октября 2019

В цикле Python i - это next(iterable object).

Каждый раз, когда i инициализируется с next(range(5)) в каждом цикле.

То же поведение вы можете проверить в следующем примере

>>> for i in range(5): 
    print(i)
    i+=5    # Here it is adding `5` but it is re-initialized with `next(range(5))`
0           # so that it is printing re-initialized value.
1
2
3
4
>>> for i in range(5):
    i+=5
    print(i)    
5
6
7
8
9
...