Подскажите, почему данный код не выполняет условия, а сразу завершается?
user_input = input('Введите, пожалуйста, номер месяца: ')
month = int(user_input)
if month == "1" or month == "3" or month == "5" or month == "7" or month == "8" or month == "10" or month == "12":
print('в этом месяце 31 день')
elif month == "4" or month == "6" or month == "9" or month == "11":
print('В этом месяце 30 дней')
elif month == "2":
print('В этом месяце 28 дней')
#print('Вы ввели', month)
#print('Неверный ввод данных')
input("\n\nНажмите Enter. чтобы выйти.")
Ответы (2 шт):
Автор решения: Pavel God
→ Ссылка
month31 = ['1','3','5','7','8','10','12']
month30 = ['4','6','9','11']
month28 = ['2']
def check_month():
user_input = input('Введите номер месяца (Enter - выход): ')
if user_input in month31:
print('В этом месяце 31 день!')
elif user_input in month30:
print('В этом месяце 30 дней!')
elif user_input in month28:
print('В этом месяце 28 дней')
elif user_input == 'Enter':
print('Программа завершена.')
quit
else:
print('Неверный ввод данных :(')
check_month()
check_month()
Я думаю, так будет целесообразнее и читабельнее. В списках строковый тип данных, на выходе в инпуте - тоже. Можно ничего не преобразовывать :)
К тому же интуитивно понятно, как код пробегается по всем условиям и не завершается сразу.
Автор решения: Иван Олексенко
→ Ссылка
def START():
user_input = input('Введите, пожалуйста, номер месяца: ')
if user_input == "1" or user_input == "3" or user_input == "5" or user_input == "7" or user_input == "8" or user_input == "10" or user_input == "12":
print('в этом месяце 31 день')
elif user_input == "4" or user_input == "6" or user_input == "9" or user_input == "11":
print('В этом месяце 30 дней')
elif user_input == "2":
print('В этом месяце 28 дней')
else:
START()
input("\n\nНажмите Enter. чтобы выйти.")