# Инструкция global в Python

Пусть у нас есть внешняя глобальная переменная `i`. Также есть функция `func`, которая прибавляет к этой переменной единицу:

`i = 0 def func(): i += 1 # выведет ошибку return i`

После выполнения кода вернется ошибка, потому что происходит конфликт глобальной `i`, объявленной во внешней коде, и локальной `i`, к которой прибавляется `1`, но сама переменная еще не объявлена. Для того, чтобы исправить данную проблему и задать функции работу именно с глобальной переменной, нужно использовать инструкцию `global`. Эта инструкция представляет собой объявление, которое выполняется для всего текущего блока кода, в котором оно задано.

Давайте перепишем предыдущий пример, объявив в теле функции `global`:

`def func(): global i i += 1 return i print(func()) # выведет 1`

В следующем коде некоторый программист допустил ошибку:

`num = 4 def func(): num *= 2 return num print(func())`

Что не так с этим кодом? Найдите и исправьте ошибку автора кода.

В следующем коде некоторый программист допустил ошибку:

`num = 10 def func(): num -= 3 return i print(func())`

Что не так с этим кодом? Найдите и исправьте ошибку автора кода.

← →
↑