from colorama import Fore, Style, init
init()
def get_age(prompt):
while True:
try:
age = int(input(prompt))
if age < 0 or age >= 100:
raise ValueError("Ошибка: введите положительное целое число меньше 100.")
return age
except ValueError:
print(Fore.RED + "Неверный ввод! Введите целое число от 0 до 99." + Style.RESET_ALL)
def get_year_word(age):
if age % 10 == 1 and age % 100 != 11:
return "год"
elif age % 10 in [2, 3, 4] and not (age % 100 in [12, 13, 14]):
return "года"
else:
return "лет"
def main():
print(Fore.MAGENTA + "=" * 30)
print("=== Расчет среднего возраста === ?")
print("=" * 30 + Style.RESET_ALL)
while True:
print(Fore.CYAN + "Введите возраст каждого ребенка:" + Style.RESET_ALL)
X = get_age("Возраст Тани (X): ? ")
Y = get_age("Возраст Мити (Y): ? ")
average_age = (X + Y) / 2
difference_tanya = X - average_age
difference_mitya = Y - average_age
def format_output(value):
return int(value) if value.is_integer() else value
print(Fore.GREEN + "\n=== Результаты === ?" + Style.RESET_ALL)
print("=" * 30)
print(f"1. Возраст Тани: {X} {get_year_word(X)} ?")
print(f"2. Возраст Мити: {Y} {get_year_word(Y)} ?")
print(f"3. Средний возраст: {format_output(average_age)} {get_year_word(format_output(average_age))} ?")
if difference_tanya > 0:
tanya_diff_text = f"Возраст Тани старше среднего на {format_output(difference_tanya)} {get_year_word(format_output(difference_tanya))}. ?"
elif difference_tanya < 0:
tanya_diff_text = f"Возраст Тани младше среднего на {abs(format_output(difference_tanya))} {get_year_word(format_output(abs(difference_tanya)))}. ?"
else:
tanya_diff_text = "Возраст Тани равен среднему возрасту. ?"
if difference_mitya > 0:
mitya_diff_text = f"Возраст Мити старше среднего на {format_output(difference_mitya)} {get_year_word(format_output(difference_mitya))}. ?"
elif difference_mitya < 0:
mitya_diff_text = f"Возраст Мити младше среднего на {abs(format_output(difference_mitya))} {get_year_word(format_output(abs(difference_mitya)))}. ?"
else:
mitya_diff_text = "Возраст Мити равен среднему возрасту. ?"
print(f"4. {tanya_diff_text}")
print(f"5. {mitya_diff_text}")
print("=" * 30)
while True:
continue_choice = input(Fore.YELLOW + "Хотите продолжить? (да/нет): " + Style.RESET_ALL).strip().lower()
if continue_choice in ['да', 'нет']:
break
else:
print(Fore.RED + "Пожалуйста, введите 'да' или 'нет'." + Style.RESET_ALL)
if continue_choice == 'нет':
print(Fore.CYAN + "Спасибо за использование программы! ?" + Style.RESET_ALL)
break
if __name__ == "__main__":
main()
На