Присвоение значения переменной внутри цикла for

У меня есть цикл for, который проходит через список городов, а также их широкие переменные (безопасность, доступность, транзит и т.д.). Если есть совпадение между широкой&специфической переменной города и широкой&специфической переменной, которую пользователь выбирает на странице, то присваивается взвешенное значение, иначе значение равно 0. Я пытаюсь добавить значения для каждой широкой переменной в списке, но получаю ошибку

локальная переменная 'city_variable1_value' упоминается перед присвоением

Когда я ссылаюсь на city_variable1_value и city_variable2_value как на 0 перед первым оператором if, то мой

total_city_value = city_variable1_value + city_variable2_value

равняется 0, когда должно быть, например, 0,24. Код приведен ниже!

views.py

Ваша программа достигла строки total_city_value = city_variable1_value + city_variable2_value, ни разу не присвоив значение city_variable1_value. Это возможно, если условие broad_variable == broad_variable1 никогда не было истинным в цикле for, который присваивает значение city_variable1_value.

Для минимального примера, если вы сделали это,

def f():
    if False:
        a = 10
    print(a)
f()

вы получите ту же ошибку UnboundLocalError: local variable 'a' referenced before assignment.

Чтобы исправить это, просто присвойте переменным значение по умолчанию перед оператором if, что потенциально предотвратит присвоение. Например,

city_variable1_value = 0
if broad_variable == broad_variable1:
    ...

city_variable2_value = 0
if broad_variable == broad_variable2:
    ...
Вернуться на верх