Слайд 1
🌍 Локальные и глобальные переменные
Переменные в Python делятся на локальные и глобальные — в зависимости от того, где они объявлены и где могут использоваться.
🔹 Локальные переменные
Локальные переменные — это переменные, созданные внутри функции. Они доступны только внутри этой функции и не видны вне её.
def print_texas():
birds = 5000
print('В Техасе обитает', birds, 'птиц.')
Здесь переменная birds создаётся внутри функции print_texas(),
и доступна только внутри неё.
⚠️ Ошибка доступа к локальной переменной другой функции
def print_texas():
birds = 5000
print('В Техасе обитает', birds, 'птиц.')
def print_california():
print('В Калифорнии обитает', birds, 'птиц.')
print_california()
Результат:
NameError: name 'birds' is not defined
Локальная переменная birds функции print_texas()
не видна в функции print_california().
📦 Одинаковые имена локальных переменных в разных функциях
def print_texas():
birds = 5000
print('В Техасе обитает', birds, 'птиц.')
def print_california():
birds = 9000
print('В Калифорнии обитает', birds, 'птиц.')
Здесь обе функции используют переменные с именем birds,
но это разные переменные, каждая принадлежит своей функции.
🎯 Область видимости переменной
Область видимости — это часть программы, где можно обращаться к переменной. Для локальной переменной это тело функции, где она создана.
def print_texas():
print('В Техасе обитает', birds, 'птиц.')
birds = 5000
При вызове такой функции возникнет ошибка:
UnboundLocalError: local variable 'birds' referenced before assignment
Ошибка возникает потому, что попытка обращения к birds
происходит до того, как она была создана.
🧩 Область видимости параметрической переменной
def draw_box(height, width):
for i in range(height):
print('*' * width)
Здесь параметры height и width — это
параметрические переменные,
и их область видимости — тело функции draw_box().
🧠 Как работает память
При вызове функции для её локальных переменных выделяется память в специальной области — стеке. После завершения функции память освобождается, а значения локальных переменных теряются.