ПРОСЬБА РЕШИТЬ ЧЕРЕЗ УСЛОВНЫЙ ОПЕРАТОР IF НА PYTHON
Апельсины бочками
Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес — отгружать апельсины бочками. Партнёрам важно знать, сколько именно бочек апельсинов отгружается каждый день.
Мобильный телефон Василия поддерживает только транслит, поэтому он передаёт сообщения вида "n bochek". Например, "3 bochki" или "1 bochka".
Напишите программу, которая выбирает правильное слово (из "bochka" , "bochek" , "bochki" ) в зависимости от значения n.
Входные данные
Одно целое число n (0≤n≤1000).
Выходные данные
Соответствующая фраза на транслите
Ввод
Вывод
3
3 bochki
1
1 bochka
15
15 bochek
Ответы
Ответ:
a=int(input())
last = a % 10
e = 'ek'
if last == 1 and a % 100 != 11:
e = 'ka'
elif 2 <= last <= 4 and a // 10 % 10 != 1:
e = 'ki'
print(F'{a} boch{e}')
Объяснение:
Вот как-то так.....
Через if скучно решать конечно, но пусть тоже полежит такой вариант.
Первый способ)
n=int(input('Введите натуральное число: '))
enddigit = n % 10 *(n//10 % 10 != 1)
end = 'ek'
if enddigit == 1:
end = 'ka'
elif enddigit in range(2,5):
end ='ki'
print(f'{n} boch{end}')
Второй способ) (решение через 1 конструкцию if, else)
n=int(input('Введите натуральное число: '))
a = n % 10 *(n//10 % 10 != 1 and n % 10 < 5)
end = 'ka'*(a==1) + 'ki'*(a!=1) if a else 'ek'
print(f'{n} boch{end}')
Третий способ) (вариация второго способа без условий!)
n=int(input('Введите натуральное число: '))
a = n % 10 *(n//10 % 10 != 1)*(n % 10 < 5)
print(n, 'boch' + ('ka'*(a==1) + 'ki'*(a!=1))*(a!=0) + 'ek'*(a == 0))