Подскажите, почему данный код не выполняет условия, а сразу завершается?

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. чтобы выйти.")
→ Ссылка