Вопрос Программирование на python

Регистрация
11 Май 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
помогите пожалуйста

программа должна выводить кол-во дней в месяце, но всегда выводит 31



a = str(input("какой месяц вас интересует"))

if a== "январь" or "март" or "май" or "июль" or "август" or "октябрь" or "декабрь":

print("31")

elif a=="апрель" or "июнь" or "сентябрь" or "ноябрь":

print("30")

elif a=="февраль":

print("28")

else:

print("проверьте верность написание месяца")
 
У тебя ошибка связанная с неправильным объявлением условия, ну и предлагаю вообще задачу решить с помощью словарей, ведь так код выглядит красивее? 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("проверьте верность написания месяца")
 
months = {
'январь': 31,
'февраль': 28,
'март': 31,
'апрель': 30,
'май': 31,
'июнь': 30,
'июль': 31,
'август': 31,
'сентябрь': 30,
'октябрь': 31,
'ноябрь': 30,
'декабрь': 31
}
while True:
month = input('месяц: ')
if month in months:
print(months[month])
else:
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("проверьте верность написание месяца")
 

Похожие темы

Назад
Сверху