Ключевое слово global позволяет функции модифицировать переменные, объявленные за пределами ее локальной области видимости, то есть в глобальной области видимости. Без global функция может только читать глобальную переменную, но не изменять ее. Использование global внутри функции указывает интерпретатору, что данная переменная относится к глобальной области.
В Python ключевое слово global используется внутри функции для обозначения того, что функция намеревается изменять глобальную переменную, определенную вне ее локальной области видимости. Без global, Python предполагает, что любая переменная, присваиваемая внутри функции, является локальной переменной для этой функции.  Если бы локальная переменная имела то же имя, что и глобальная, она бы затенила глобальную в пределах области видимости функции.  global говорит интерпретатору использовать и/или изменить глобальную переменную.
Основные моменты:
global позволяет функции не только читать значение глобальной переменной, но и изменять его.global, то изменения повлияют на глобальную переменную, а не создадут локальную.global внутри функции перед использованием. Простое чтение глобальной переменной не требует объявления global.global используется только внутри функций.  Вне функций переменные по умолчанию имеют глобальную область видимости.Пример:
    global_var = 10
    def my_function():
      global global_var
      global_var = 20  # Изменяет глобальную переменную
    print(global_var)  # Выводит 10
    my_function()
    print(global_var)  # Выводит 20
  Без использования global в примере выше:
    global_var = 10
    def my_function():
      global_var = 20  # Создает локальную переменную с тем же именем
    print(global_var)  # Выводит 10
    my_function()
    print(global_var)  # Выводит 10 (глобальная переменная не изменилась)
  Когда использовать global:
Использовать global следует с осторожностью. Чрезмерное использование затрудняет отладку и понимание кода, так как функции могут неожиданно изменять глобальное состояние программы. Лучше практиковать передачу данных между функциями через аргументы и возвращаемые значения, когда это возможно.  Однако, global может быть полезен в следующих случаях:
global может упростить код, но это должно быть взвешенным решением.В заключение:  global позволяет функции влиять на переменные, находящиеся за пределами ее локальной области видимости. Используйте его обдуманно, помня о потенциальных проблемах с читаемостью и предсказуемостью кода. По возможности, старайтесь использовать передачу аргументов и возвращаемых значений для обмена данными между функциями.