Pythonで文字の種類別に文字列を作成・取得

スポンサーリンク
スポンサーリンク

はじめに

文字の種類別に文字列を取得します。

使用するライブラリ

string

標準ライブラリですのでインストールが不要になります。

ライブラリstringで取得できる文字列

ascii_letters:アルファベット(小文字・大文字含む)

ascii_lowercase:アルファベット(小文字)

ascii_uppercase:アルファベット(大文字)

digits:数値(10進数)

hexdigits:数値(16進数)

octdigits:数値(8進数)

printable:印刷可能な ASCII 文字で構成される文字列

punctuation:ASCII 文字の記号

whitespace:ASCII 文字の空白

アルファベット(小文字・大文字含む)

string.ascii_letters

# 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

アルファベット(小文字)

string.ascii_lowercase

# 'abcdefghijklmnopqrstuvwxyz'

アルファベット(大文字)

string.ascii_uppercase

# 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

数値(10進数)

string.digits

# '0123456789'

数値(16進数)

string.hexdigits

# '0123456789abcdefABCDEF'

数値(8進数)

string.octdigits

# '01234567'

印刷可能な ASCII 文字で構成される文字列

string.printable

# '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

ASCII 文字の記号

string.punctuation

# '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

ASCII 文字の空白

string.whitespace

# ' \t\n\r\x0b\x0c'

\tの前にスペースがあります。

日本語(全角と半角カタカナ)

ここからはライブラリstringは使用できません。

ひらがな

temp = [chr(i) for i in range(12353, 12353+86)]
''.join(temp)

# 'ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔゕゖ'

全角カタカナ

temp = [chr(i) for i in range(12449, 12449+90)]
''.join(temp)

# 'ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ'

半角カタカナ

temp = [chr(i) for i in range(65382, 65382+58)]
''.join(temp)

# 'ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚'

*「ー」や濁点、半濁点が含まれていますので適宜外してください。

全角数値

temp = [chr(i) for i in range(65296, 65296+10)]
''.join(temp)

# '0123456789'

全角アルファベット(大文字)

temp = [chr(i) for i in range(65313, 65313+26)]
''.join(temp)

# 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

全角アルファベット(小文字)

temp = [chr(i) for i in range(65345, 65345+26)]
''.join(temp)

# 'abcdefghijklmnopqrstuvwxyz'

全角記号(ASCII 文字の記号)

ASCII 文字の記号と合わせてみました。飛び飛びになっています。なお、他にも多くの全角記号があります。

temp = [chr(i) for i in range(65281, 65281+15)]
temp.extend([chr(i) for i in range(65306, 65300+13)])
temp.extend([chr(i) for i in range(65339, 65339+6)])
temp.extend([chr(i) for i in range(65371, 65371+4)])
''.join(temp)
# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'

ASCIIコードに変換

ordを利用すればASCII コードに変換できますので、上記の記号などは手探りで作成することができます。

ord('あ')

# 12354

chr(12354)

# 'あ'

 

コメント

タイトルとURLをコピーしました