Форум сайта python.su
Здравствуйте.
Никак не могу понять, почему функция не видит значение “x”:
x = 5 def name(): x= x+10 name(x) print(x)
x = 5 def name(): y = x+10 print(y) name()
Офлайн
KamilKamilпотому что во втором случае нет присваивания, то есть операция безопасна, и интерпретатор позволяет вам неявно использовать переменную из глобальной области видимости. Если же вам нужно изменить значение переменной из внешней области видимости это нужно делать явно
Но вот почему, в одном случае функция видит “x”, а в другом случае нет, никак не могу понять((((
x = 5 def name(): global x x= x+10 name()
Офлайн
FishHookСпасибо)
Офлайн
FishHookМожете еще подсказать, почему тут на принт уйдет 10?:
x = 5 def name(): global x x = 10 name() def name2(): print(x) name2()
Офлайн
KamilKamilа что должно уйти? Вы же сами присвоили иксу значение 10
Можете еще подсказать, почему тут на принт уйдет 10?:
Офлайн