アルファベットを小さくしてみよう


現実逃避に作りました

方法

import unicodedata

def make_smaller(string):
  new_string = ''

  for char in string:
    if not char.isalpha():
      new_string += char
      continue

    if char == 'i' or char == 'n':
      new_string += unicodedata.lookup(f'SUPERSCRIPT LATIN SMALL LETTER {char}')
      continue

    small_or_capital = 'CAPITAL' if char.isupper() else 'SMALL'

    try:
      new_string += unicodedata.lookup(f'MODIFIER LETTER {small_or_capital} {char}')
      continue
    except KeyError:
      pass

    try:
      new_string += unicodedata.lookup(f'MODIFIER LETTER SMALL {char}')
      continue
    except KeyError:
      pass

    new_string += char  # q と Q は残念ながら対応する文字がない。

  return new_string
>>> make_smaller('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')
'ᴬᴮᶜᴰᴱᶠᴳᴴᴵᴶᴷᴸᴹᴺᴼᴾQᴿˢᵀᵁⱽᵂˣʸᶻᵃᵇᶜᵈᵉᶠᵍʰⁱʲᵏˡᵐⁿᵒᵖqʳˢᵗᵘᵛʷˣʸᶻ'

>>> make_smaller('Puella Magi Madoka Magica')
'ᴾᵘᵉˡˡᵃ ᴹᵃᵍⁱ ᴹᵃᵈᵒᵏᵃ ᴹᵃᵍⁱᶜᵃ'

Android など一部の環境では表示できないので画像も上げておきます。

参考