В Python при попытке изменить значение глобальной переменной внутри функции, не объявив её как global, будет создана локальная переменная с таким же именем.  Изменение этой локальной переменной не повлияет на значение глобальной переменной. При обращении к переменной внутри второй функции без global будет использована локальная переменная, а глобальная останется неизменной.
Если в функции объявить переменную как global, то эта переменная будет ссылаться на глобальную область видимости. Это означает, что любое изменение этой переменной внутри данной функции повлияет на глобальную переменную с тем же именем.
Теперь рассмотрим случай, когда внутри другой функции попытаться изменить значение этой же глобальной переменной, но без использования ключевого слова global. В этом случае Python создаст локальную переменную с тем же именем в области видимости этой второй функции.  Изменение этой локальной переменной не повлияет на глобальную переменную, объявленную с global в первой функции.
По сути, произойдет "затенение" (shadowing) глобальной переменной.  При обращении к переменной внутри второй функции без global будет использоваться именно локальная переменная, а глобальная останется неизменной.
Пример:
        
        global_var = 10
        def func_global():
            global global_var
            global_var = 20  # Изменяет глобальную переменную
        def func_local():
            global_var = 30  # Создает ЛОКАЛЬНУЮ переменную global_var
        print(f"Глобальная переменная до изменений: {global_var}")  # Выведет 10
        func_global()
        print(f"Глобальная переменная после func_global(): {global_var}")  # Выведет 20
        func_local()
        print(f"Глобальная переменная после func_local(): {global_var}")  # Выведет 20 (НЕ 30, так как func_local работала с локальной переменной)
        
    
    Вывод: Без использования global вторая функция создаст и будет работать с локальной переменной, оставляя глобальную переменную нетронутой.