Нюансы работы с областями видимости в Python

Рассмотрим важные нюансы работы с локальной и глобальной переменными.

Пусть у нас есть глобальная переменная num. Давайте создадим функцию func, которая будет выводить глобальную num в консоль:

num = 1 def func(): print(num) func() # выведет 1

А теперь объявим локальную num на строке ниже функции print. После выполнения кода в консоль выведется ошибка. Это происходит из-за того, что Python внутри функции воспринимает num только как локальную переменную, которая еще не была объявлена:

num = 1 def func(): print(num) # выведет ошибку num = 2

Давайте теперь перепишем код внутри функции так, чтобы значение переменной num увеличилось на 2:

num = 1 def func(): num += 2 # выведет ошибку

Ошибка вызвана тем, что выражение num += 2 представляет собой следующую запись:

num = num + 2

Однако сама локальная переменная, к которой происходит прибавление еще не объявлена. И соответственно Python выводит ошибку, поскольку нельзя прибавить число к несуществующему значению.

Каким будет результат выполнения следующего кода:

tst = '12' def func(): tst = 12 return tst print(tst)

Каким будет результат выполнения следующего кода:

tst = 'abc' def func(): tst = tst.upper() return tst func() print(tst)

Каким будет результат выполнения следующего кода:

tst = 'abc' def func(): txt = tst.upper() return txt print(func()) print(tst)



Чат с GPT Компилятор