Здравствуйте, есть следующий код:
x = 4
for i in range(x):
for k in range(x):
print(k)
x = 2
Печатает:
0
1
2
3
0
1
0
1
0
1
Почему второй цикл for переоценивается на другое значение икса? Несмотря на то, что это значение находится в его теле. Однако, если написать такой же код, но с одним циклом, аналогичного переоценивания нет:
x = 4
for k in range(x):
print(k)
x = 2
Печатает:
0
1
2
3
xс 4 на 2. Оно, что характерно, меняется: ваш код работает штатно. В чем проблема-то? – Dmitriy Simushev Mar 04 '18 at 10:26x = 2. После того как вложенный цикл завершился, выполняется вторая итерация внешнего цикла. Теперь строкаfor k in range(x):рассматривается заново и второй раз вложенный цикл выполняется сxравным 2. – Viktorov Mar 04 '18 at 10:26for x in a: x=1не меняетaсписок – jfs Mar 04 '18 at 11:31