Методы Python для преобразования чисел в порядковую форму

В Python, если вы хотите преобразовать число в порядковую форму (например, преобразовать «1» в «1-е», «2» в «2-е» и т. д.), вы можете использовать различные методы. Вот несколько подходов:

Метод 1: использование операторов if-elif

def ordinal(number):
    suffixes = ['th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th']
    if 10 <= number % 100 <= 20:
        suffix = 'th'
    else:
        suffix = suffixes[number % 10]
    return str(number) + suffix
# Example usage:
print(ordinal(1))  # Output: 1st
print(ordinal(2))  # Output: 2nd
print(ordinal(11)) # Output: 11th

Метод 2: использование библиотеки inflect
Вы можете установить библиотеку inflectчерез pip (pip install inflect) для обработки порядковых преобразований:

import inflect
def ordinal(number):
    p = inflect.engine()
    return p.number_to_ordinal(number)
# Example usage:
print(ordinal(1))  # Output: 1st
print(ordinal(2))  # Output: 2nd
print(ordinal(11)) # Output: 11th

Метод 3. Использование сопоставления словаря

def ordinal(number):
    suffixes = {1: 'st', 2: 'nd', 3: 'rd'}
    if 10 <= number % 100 <= 20:
        suffix = 'th'
    else:
        suffix = suffixes.get(number % 10, 'th')
    return str(number) + suffix
# Example usage:
print(ordinal(1))  # Output: 1st
print(ordinal(2))  # Output: 2nd
print(ordinal(11)) # Output: 11th