def modify(x):
x += 1
a = 5
modify(a)
print(a)
5
. В Python целые числа (int) являются неизменяемыми (immutable) типами данных. Функция modify(x)
получает копию значения переменной a
. Операция x += 1
внутри функции создает новую переменную x
с новым значением, но не изменяет исходную переменную a
в глобальной области видимости.
Вопрос: Что выведет следующий код?
def modify(x):
x += 1
a = 5
modify(a)
print(a)
Ответ и объяснение:
Код выведет 5
.
Разбор:
a
инициализируется значением 5
.modify(a)
. Важно понимать, что в Python целые числа (int
) являются неизменяемыми (immutable). Это значит, что при передаче a
в функцию modify
, передается копия значения 5
, а не ссылка на саму переменную a
.modify
параметр x
, который является копией значения a
, увеличивается на 1
. То есть, x
становится равным 6
. Однако, это изменение не влияет на исходную переменную a
, которая находится вне функции.modify
управление возвращается в основную программу. Значение переменной a
по-прежнему равно 5
.print(a)
выводит значение переменной a
, которое равно 5
.Ключевой момент: В Python при передаче неизменяемых типов данных (таких как целые числа, числа с плавающей точкой, строки, кортежи) в функцию, передается их значение (копия), а не ссылка. Поэтому изменение этих значений внутри функции не влияет на исходные переменные вне функции.