Вопрос задан 21.07.2023 в 06:10. Предмет Информатика. Спрашивает Обидина Анастасия.

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 смнилочь на 25
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Першутов Даниил.

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Здравствуйте!

В данной программе есть небольшая путаница в терминах, и это может вызывать путаницу при понимании поведения программы. Важно правильно понимать, что такое "локальная" и "глобальная" переменные.

Давайте разберем ваш код:

python
def func_1(): x = 2 print('x равно', x) def func_2(): global x x = 5 func_2() print('Локальное x сменилось на', x) func_1() print(x)
  1. Вызывается функция func_2(), в которой указано, что переменная x является глобальной (global x) и присваивается значение 5.
  2. После этого выводится сообщение "Локальное x сменилось на 5". Важно отметить, что здесь произошла ошибка в тексте вывода: должно быть "Глобальное x сменилось на 5". Это связано с неправильным употреблением термина "локальное".
  3. Далее вызывается функция func_1(), которая создает локальную переменную x со значением 2 и выводит "x равно 2".
  4. Наконец, после выполнения всех функций выводится значение глобальной переменной x (которое было изменено функцией func_2()) и равно 5.

Используемые термины в вашем примере:

  • "локальное x" - это переменная x, определенная внутри функции func_1(). Она не имеет никакой связи с глобальной переменной x.
  • "глобальное x" - это переменная x, объявленная вне всех функций и доступная для всех функций, как для чтения, так и для изменения. Именно это значение изменяется функцией func_2().

Вывод программы должен быть:

Глобальное x сменилось на 5 x равно 2 5

Как видите, значение глобальной переменной x изменяется функцией func_2(), и это измененное значение выводится после вызова func_1().

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос