В функции х вызывается значение глобальной переменной a.
вы пришли из JavaScript?
у вас пробел в областях видимости в питоне.
у вас внутри функции x(),
пытаюсь обратиться к локальной переменной до присвоения ей значения
потому что вы пишите print(a) ДО того как присваиваете ей значение. Функция x() ничего не знает о той переменной "a" которая равна 1.
def x():
# внутри функции ничего неизвестно о переменной а = 1 которая снаружи.
# чтобы было известно надо использовать ключевое слово global, или передавать напрямую ваше "а" = 1, в функцию x(a)
print(a) # ошибка тут. Выводите раньше чем присвоили значение.
a = 2
a = 1
x()
Чтобы работало
def x():
global a
print(a)
a = 2
a = 1
x()
x() # выведет 1
print(a) # выведет 2