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
→ Ссылка
Ошибка достаточно глупая. Она гласит о том что эта переменная не была создана ранее.