Задача: Правильные окончания существительных для любых чисел

Опубликован: 31.10.2024 33

Условие: Напишите функцию, которая будет принимать целое число и три варианта существительного с разным окончанием, а возвращать правильный вариант окончания существительного после числа, например:

  • func(1, 'яблоко', 'яблока', 'яблок') # выведет '1 яблоко'
  • func(2, 'яблоко', 'яблока', 'яблок') # выведет '2 яблока'
  • func(3, 'яблоко', 'яблока', 'яблок') # выведет '3 яблока'
  • func(4, 'яблоко', 'яблока', 'яблок') # выведет '4 яблока'
  • func(5, 'яблоко', 'яблока', 'яблок') # выведет '5 яблок'

Функция должна работать для чисел любой длины.

Решение:

def endings_of_words(num, var1, var2, var3):
    variants = ''
    last_char = str(num)[-1]
    if last_char in '056789':
        variants = var3
    elif last_char == '1':
        variants = var1
    elif last_char in '234':
        variants = var2

    if len(str(num)) >= 2:
        before_last_char = str(num)[-2]
        if before_last_char == '1' and last_char in '123456789':
            variants = var3

    print(num, variants)

    return variants


for i in range(30):
    endings_of_words(i, 'яблоко', 'яблока', 'яблок')

# Вывод:
# 0 яблок
# 1 яблоко
# 2 яблока
# 3 яблока
# 4 яблока
# 5 яблок
# 6 яблок
# 7 яблок
# 8 яблок
# 9 яблок
# 10 яблок
# 11 яблок
# 12 яблок
# 13 яблок
# 14 яблок
# 15 яблок
# 16 яблок
# 17 яблок
# 18 яблок
# 19 яблок
# 20 яблок
# 21 яблоко
# 22 яблока
# 23 яблока
# 24 яблока
# 25 яблок
# 26 яблок
# 27 яблок
# 28 яблок
# 29 яблок

Похожие посты

Задача: Решение квадратного уравнения

Задача: Тренажер таблицы умножения

Задача: Наибольший числовой палиндром

Задача: Разложение числа на простые множители

Комментариев нет.