Так что я уже некоторое время работаю с Python, и как только я начинал думать, что у меня есть руки, я наткнулся на еще одну базовую концепцию, которую мне не хватало. Итак ..
Имея этот базовый цикл for (foreach):
x = 15
for x in range(10):
continue
print(x)
Значение для x, которое я ожидал, было 15 , но вместо этого я получил 9 .
Тот же фрагмент кода в C возвращает исходное значение x - 15 :
#include <stdio.h>
int main(void)
{
int x = 15;
for (int x = 0; x < 10; x++)
{
continue;
}
printf("%d", x);
return 0;
}
Кажется, я не могу понять, как работает область действия переменной.Поскольку x объявляется вне области действия цикла for, не должна ли создаваться новая локальная переменная во время существования цикла?Почему тогда «x» переопределяется в версии Python?