У тебя ошибка связанная с неправильным объявлением условия, ну и предлагаю вообще задачу решить с помощью словарей, ведь так код выглядит красивее? a = str(input("какой месяц вас интересует\n")).lower()
b31 = dict(zip(["январь", "март", "май", "июль", "август", "октябрь", "декабрь"], [31 for i in range(10)]))
b30 = dict(zip(["апрель", "июнь", "сентябрь", "ноябрь"] , [30 for i in range(10)]))
c = b31|b30; c.update({'февраль': 28})
try:
print(c[a])
except Exception as e:
print("проверьте верность написания месяца")
'''
Дней месяца по имени
'''
mnsDeys={"январь":31,
"март":31,
"май":31,
"июль":31,
"август":31,
"октябрь":31,
"декабрь":31,
"апрель":30,
"июнь":30,
"сентябрь":30,
"ноябрь":30,
"февраль":'28 ат сылы 29'}
while True:
try:
print('дней=',mnsDeys[input('месяц =')])
except: # если ошибётся при вооде или с границами массива
if len(input("Ошибочка. Надоело? (выход= enter)"))==0:
break
print('ещё давай!')
А ваш вариант совсем не на современном языке написан, а на каком-то древнем Васике. Разбираться в коде - напрасная трата времени.
В каждом условии должна участвовать переменная, а не просто строка, просто непустая строка - всегда True if a == "январь" or a == "март" or a == "май" or a == "июль" or a == "август" or a == "октябрь" or a == "декабрь":
print(31)
elif a == "апрель" or a == "июнь" or a == "сентябрь" or a == "ноябрь":
print(30)
elif a == "февраль":
print(28)
else:
print("проверьте верность написание месяца")