Ошибка UnboundLocalError: local variable referenced before assignment в Python может возникать по нескольким причинам: 2
Python определяет область видимости переменной и считает её локальной, если она создана внутри функции. 2 Соответственно, он ищет, где она объявляется в функции, а она не объявлена, что и вызывает ошибку. 1
Чтобы решить проблему, нужно определиться с областью видимости и решить, какую переменную использовать: локальную или глобальную. 1 Если нужна локальная переменная, то её нужно добавить внутрь функции. 1 Если же внутри функции нужно работать с глобальной переменной, то её также нужно добавить в функцию командой global. 1