Вопрос задан 31.08.2026 в 06:02. Предмет Информатика. Спрашивает Кужель Илья.

Python. Программа спрашивает у пользователя день, месяц и год рождения, а затем выводит возраст в годах, месяцах и днях. Без использования if.

Перейти к ответам

Ответы на вопрос

Отвечает Родионова Катя.

Можно сделать без оператора if, используя сравнения как значения True и False. В Python они работают как \(1\) и \(0\).

Пример:

from datetime import date
import calendar

d = int(input("День рождения: "))
m = int(input("Месяц рождения: "))
y = int(input("Год рождения: "))

today = date.today()

years = today.year - y - ((today.month, today.day) < (m, d))

last_year = today.year - ((today.month, today.day) < (m, d))
last_day = min(d, calendar.monthrange(last_year, m)[1])
last_birthday = date(last_year, m, last_day)

months = today.month - last_birthday.month - (today.day < last_birthday.day)
months = months % 12

month_num = last_birthday.month + months
ref_year = last_birthday.year + (month_num - 1) // 12
ref_month = (month_num - 1) % 12 + 1
ref_day = min(last_birthday.day, calendar.monthrange(ref_year, ref_month)[1])
ref_date = date(ref_year, ref_month, ref_day)

days = (today - ref_date).days

print(years, "лет", months, "месяцев", days, "дней")

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос