Это распространенный тип ошибки
позвольте мне разобрать вашу ошибку
if d.weekday() == 0:
tdelta = datetime.timedelta(days=3)
friday = d - tdelta
elif d.weekday() in range(1,5):
tdelta1 = datetime.timedelta(days=1)
prev_day = d - tdelta1
если мы выполним вашу программу
если d.weekday() == 0
содержит ложь
, тогда он перейдет к
elif d.weekday() in range(1,5):
, но ваш friday = d - tdelta
находится в if
состоянии.Вот почему он показывает ошибку
, чтобы решить, что вы должны определить friday
за пределами if
условия и переназначить значение в вашем if
условии
, вы можете решить это следующим образом
friday = None
prev_day = None
d = datetime.date.today()
if d.weekday() == 0:
tdelta = datetime.timedelta(days=3)
friday = d - tdelta
elif d.weekday() in range(1,5):
tdelta1 = datetime.timedelta(days=1)
prev_day = d - tdelta1