Skip to content

Ordinal suffix for a number

Return 1st, 2nd, 3rd, 11th, and so on for an integer.

18th August 2026

from typing import Dict


def ordinal(num: int) -> str:
    suffixes: Dict[int, str] = {1: 'st', 2: 'nd', 3: 'rd'}

    if 10 <= num % 100 <= 20:
        suffix = 'th'
    else:
        suffix = suffixes.get(num % 10, 'th')

    return f"{num}{suffix}"