можно ли решить эту задачу ?

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
windows 7
python 3.5.2

Здравствуйте, не могу решить данную задачку. Решаема ли она:
Напишите программу, которая будет получать на вход количество, а выводить это число и правильное склонение слова "студент" латиницей ("student", "studenta", "studentov").

Обратите внимание что цифры проверки бесконечны, скажем n % 10 потом n % 100 и т.д придеться печатать бесконечно. Имеется таблица.
0404814c-f079-4ed6-a4d3-4e3e08bd3082
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Решаема.
Вот пример решения с использованием словарей:
Python:
n = input()
d = {'1': '', '2': 'a', '3': 'a', '4': 'a', '01': 'ov'}
print(n + ' student' + d.get('0' + n[-2:][:-1], d.get(n[-1], 'ov')))
 

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
Решаема.
Вот пример решения с использованием словарей:
Python:
n = input()
d = {'1': '', '2': 'a', '3': 'a', '4': 'a', '01': 'ov'}
print(n + ' student' + d.get('0' + n[-2:][:-1], d.get(n[-1], 'ov')))
а с помощью if else elif ? просто задание по практике этих операторов
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
а с помощью if else elif ? просто задание по практике этих операторов
Вот пример на if/else:
Python:
n = input()

if n[-2:] in ('11', '12', '13', '14'):
    print(n, 'studentov')
elif n[-1] == '1':
    print(n, 'student')
elif n[-1] in ('2', '3', '4'):
    print(n, 'studenta')
else:
    print(n, 'studentov')
 

Elik

Новичок
Пользователь
Окт 17, 2020
21
0
1
Вот пример на if/else:
Python:
n = input()

if n[-2:] in ('11', '12', '13', '14'):
    print(n, 'studentov')
elif n[-1] == '1':
    print(n, 'student')
elif n[-1] in ('2', '3', '4'):
    print(n, 'studenta')
else:
    print(n, 'studentov')
первым ходом убрали все исключения, а потом все как по маслу. Браво!
блин почему я так плохо соображаю
спасибо
 

Форум IT Специалистов