• 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

Ответы 6

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

      dexter35
    • 5 лет назад
    • 0
  • а чтоб изменить тот x тебе проше сделать функцию инкремент
    • Автор:

      emeline
    • 5 лет назад
    • 0
  • Спасибо.
    • Автор:

      remyrubio
    • 5 лет назад
    • 0
  • все программирование сводится к выводу каждого шага в консоль)
    • Автор:

      zeus44
    • 5 лет назад
    • 0
  • =)
    • Автор:

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

    • Автор:

      ansley
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years