x = 3
def func():
    global x
    x = 7
    return x
func()
print(x)
func() использует ключевое слово global x, которое позволяет изменить глобальную переменную x, а не создать локальную переменную с тем же именем. Таким образом, присваивание x = 7 внутри функции изменяет значение глобальной переменной x, и при выводе на печать будет напечатано новое значение x.
Вопрос: Что выведет следующий код?
x = 3
def func():
    global x
    x = 7
    return x
func()
print(x)
  Ответ: 7
Объяснение:
x инициализируется значением 3 в глобальной области видимости.func().  Ключевое слово global x внутри функции указывает, что мы имеем дело с глобальной переменной x, а не с локальной переменной с тем же именем.func() вызывается. Внутри этой функции глобальная переменная x изменяется на 7.  Функция возвращает значение 7, но возвращаемое значение никуда не сохраняется.print(x) выводит значение глобальной переменной x, которая теперь равна 7, поскольку функция func() изменила ее.Таким образом, программа выведет 7.