UnboundLocalError: local variable 'l' referenced before assignment

Здраствуйте, я тут написал алгоритм для нахождения средних баллов за оценки от определенных уроков. Написал код все прекрасно работает, но когда начинаю использовать его как модуль начинает выдавать ошибки синтаксиса:

UnboundLocalError: local variable 'l' referenced before assignment

вот сам код:

import trimestr as tr
from datetime import date

now = date.today()
x = date(2022, 12, 25)
y = date(2022, 9, 1)
z = date(2023, 2, 27)

def savestr(num):
    v = open('v.txt', 'w')
    print('bbbbbbbb', num)
    v.write(num)
    v.close()

def openstr():
    v = open('v.txt', 'w+')
    l = v.read()
    print('nnnnnnnn',l)
    v.close()
    return l

def vichislRlka(lesson):
    if lesson == 'Алгебра':
        l = 1
    if lesson == 'География':
        l = 3
    if lesson == 'Геометрия':
        l = 4
    if lesson == 'Английский язык':
        l = 6
    if lesson == 'Турецкий язык':
        l = 7
    if lesson == 'Информатика':
        l = 8
    if lesson == 'История':
        l = 9
    if lesson == 'Литература':
        l = 11
    if lesson == 'Обществознание':
        l = 12
    if lesson == 'ОБЖ':
        l = 13
    if lesson == 'Родная литература':
        l = 15
    if lesson == 'Родной язык':
        l = 16
    if lesson == 'Русский язык':
        l = 17
    if lesson == 'Физика':
        l = 20
    if lesson == 'Физическая культура':
        l = 21
    if lesson == 'Химия':
        l = 22
    # h = openstr()
    # print('vvvvvvvv',h)
    return l

def time(lesson):
    if now <= x:

        h = tr.trimestr(1, lesson)
    elif (now < y) and (now > x):

        h = tr.trimestr(2, lesson)
    elif (now <= z) and (now > y):
        h = tr.trimestr(3, lesson)
    result = list(map(int, h))
    # print(result)
    c = len(result)
    #print(c)
    n = 0
    v = 0
    for i in range(1, c + 1):
        f = i - 1
        v = result[f]
        n = n + v
        # print(n)
        v = v + 1
    # print(n)
    u = n / c
    u = round(u, 2)
    # print(u)
    return u

def majiK(lesson):
    lesson = vichislRlka(lesson)
    h = time(lesson=lesson)
    return h

Ответы (1 шт):

Автор решения: Katze

Ошибка достаточно глупая. Она гласит о том что эта переменная не была создана ранее.

→ Ссылка