テクノなまこ

科学の力

pythonで、Unicodeのランダムな文字を出力するコード例

ランダムなUnicodeの文字を一つ表示するプログラム

import unicodedata
import random

def uni():
    while True:
        n = random.randint(0,0x10FFFF)
        if not unicodedata.category(chr(n)) in ["Cn", "Co"]:
            break
    return chr(n)

print(uni())

解説
unicodedata.category()は、文字を入れるとUnicodeのカテゴリー名が返ってくる関数で、カテゴリー名にはLo(普通の文字)、Nl(数字)、Cc(制御文字)などがある。上のコード例では、Cn(未定義)やCo(私用領域)以外の文字が出てくるまで、Unicodeの最大範囲(0から0x10FFFF、両端含む)でランダムな整数を作って無限ループしている。

カテゴリー名の一覧(公式)
Unicode Character Categories
カテゴリー名の一覧(日本語)
サポートされているUnicode一般カテゴリ | CS+ V4.01.00