Информатика, вопрос задал davidbutaev1233 , 7 лет назад

PYTHON Здравствуйте, не очень понял логику программы, почему локальное x не сменилось и получаем " локальное x сменилось на 2",ведь использовано global и я ему присвоил 5.

def func_1():

x=2

print('x равно',x)

def func_2():

global x

x=5

func_2()

print('Локальное x смнилочь на',x)

func_1()

print (x)

Выводит:

x равно 2

Локальное x смнилочь на 2

5

Ответы на вопрос

Ответил vlajong
0

весь прикол в том что он смотрит дальше чем func_1 он изменяет а в твоем случаи инициализирует x и его меняет а твою переменую в теле func_1 не трогает в этом можно убедится перед global x напиши print(x) и посмотри чему он равен он тебе выдаст ошибку так как до функции ты не объявлял x

Ответил vlajong
0
весь прикол в том что он смотрит дальше чем func_1 он изменяет а в твоем случаи инициализирует x и его меняет а твою переменую в теле func_1 не трогает в этом можно убедится перед global x напиши print(x) и посмотри чему он равен он тебе выдаст ошибку так как до функции ты не объявлял x
Ответил vlajong
0
а чтоб изменить тот x тебе проше сделать функцию инкремент
Ответил davidbutaev1233
0
Спасибо.
Ответил vlajong
0
все программирование сводится к выводу каждого шага в консоль)
Ответил davidbutaev1233
0
=)
Новые вопросы