В 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