Напишите программу,в Python которая получает возраст человека (целое число, не превышающее 120) и выводит этот возраст со словом «год», «года» или «лет». Например, «21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.
while True:
try:
age = int(input('Сколько вам лет?\n>> '))
if 1 < age <= 120:
break
else:
print('Введи возраст в диапазоне 0-120')
except ValueError:
print('Введи число!')
if 5 <= age <= 20:
print(f'Вам {age} лет')
elif str(age)[-1] == '1':
print(f'Вам {age} год')
elif 1 < int(str(age)[-1]) < 5:
print(f'Вам {age} года')
elif 4 < int(str(age)[-1]) <= 9 or int(str(age)[-1]) == 0:
print(f'Вам {age} лет')
Объяснение:
Python 3.8.2
Вот код программы:
```python
def get_age_string(age):
# Проверим, соответствует ли введенное значение требованиям (целое число от 1 до 120)
if not isinstance(age, int) or age < 1 or age > 120:
return "Неверный возраст. Введите целое число от 1 до 120."
# Определим последнюю цифру возраста
last_digit = age % 10
# Определим последние две цифры возраста
last_two_digits = age % 100
# Исключим случаи, когда особые правила применяются к некоторым числам (например, 11-14 лет)
if 10 < last_two_digits < 20:
return f"Вам {age} лет."
# Определим, какое слово использовать: "год", "года" или "лет"
if last_digit == 1:
return f"Вам {age} год."
elif 2 <= last_digit <= 4:
return f"Вам {age} года."
else:
return f"Вам {age} лет."
# Входные данные: возраст пользователя
age_input = input("Введите возраст: ")
try:
age = int(age_input)
age_string = get_age_string(age)
print(age_string)
except ValueError:
print("Неверный возраст. Введите целое число от 1 до 120.")
```
Давай я объясню код более подробно:
1. Мы определяем функцию `get_age_string`, которая принимает в качестве аргумента возраст человека.
2. Внутри функции мы сначала проверяем, соответствует ли введенное значение требованиям (целое число от 1 до 120). Если нет, то возвращаем соответствующую ошибку.
3. Затем мы определяем последнюю цифру возраста и последние две цифры возраста.
4. Далее мы исключаем случаи, когда особые правила применяются к некоторым числам (например, 11-14 лет), чтобы избежать ошибочных результатов.
5. В зависимости от последней цифры возраста определяем, какое слово использовать: "год", "года" или "лет".
6. Функция возвращает строку с правильным предложением, в котором указывается возраст человека в правильной форме.
7. Затем мы запрашиваем возраст у пользователя, преобразуем его в целое число и вызываем функцию `get_age_string`, передавая введенный возраст в качестве аргумента.
8. В результате получаем строку с правильной формой возраста и выводим ее на экран.
Надеюсь, это объяснение поможет тебе лучше понять, как работает эта программа. Если у тебя есть еще вопросы, не стесняйся задавать!