Задача: Определение знака зодиака по дате

Опубликован: 20.09.2024 83

Условие: напишите программу, которая будет определять знак зодиака по числу и месяцу рождения.

Программа должна проверять корректность вводимых данных.

Решение:

print("Программа по определению знака зодиака по числу и месяцу рождения")
month_name = ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь',
              'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь']

# Функция по определению знака зодиака
def get_zodiac_sign(day, month):
    if (month == "март" and 21 <= day <= 31) or (month == "апрель" and day <= 19):
        sign = "Овен"
    elif (month == "апрель" and 20 <= day <= 30) or (month == "май" and day <= 20):
        sign = "Телец"
    elif (month == "май" and 21 <= day <= 31) or (month == "июнь" and day <= 21):
        sign = "Близнецы"
    elif (month == "июнь" and 22 <= day <= 30) or (month == "июль" and day <= 22):
        sign = "Рак"
    elif (month == "июль" and 23 <= day <= 31) or (month == "август" and day <= 22):
        sign = "Лев"
    elif (month == "август" and 23 <= day <= 31) or (month == "сентябрь" and day <= 22):
        sign = "Дева"
    elif (month == "сентябрь" and 23 <= day <= 30) or (month == "октябрь" and day <= 23):
        sign = "Весы"
    elif (month == "октябрь" and 24 <= day <= 31) or (month == "ноябрь" and day <= 22):
        sign = "Скорпион"
    elif (month == "ноябрь" and 23 <= day <= 30) or (month == "декабрь" and day <= 21):
        sign = "Стрелец"
    elif (month == "декабрь" and 22 <= day <= 31) or (month == "январь" and day <= 19):
        sign = "Козерог"
    elif (month == "январь" and 20 <= day <= 31) or (month == "февраль" and day <= 18):
        sign = "Водолей"
    elif (month == "февраль" and 19 <= day <= 29) or (month == "март" and day <= 20):
        sign = "Рыбы"
    else:
        sign = "Не удалось определить знак зодиака"
    return sign


# Ввод данных пользователем
while True:
    day = int(input("Введите число дня рождения (ДД): "))
    month = input("Введите месяц рождения (январь, февраль ...): ").lower()
    if 1 <= day <= 31 and month in month_name:
        break
    else:
        print('Ошибка ввода. Введите корректные данные !')

print(f"Ваш знак зодиака: {get_zodiac_sign(day, month)}")

# Введите число дня рождения (ДД): 30
# Введите месяц рождения (январь, февраль ...): июнь
# Ваш знак зодиака: Рак

Похожие посты

Задача: Решение квадратного уравнения

Задача: Тренажер таблицы умножения

Задача: Наибольший числовой палиндром

Задача: Разложение числа на простые множители

Комментариев нет.