pythonで英数字の一覧を作成するstringモジュール

n進数と10進数相互間の変換のプログラムを作成するときに、数字(0,1,2・・・)や英字(a,b,c,・・・z)を入力することがあります。結構時間がかかるし、間違えて入力するととんでもないことになってしまいます。こんなとき便利な機能を見付けました。pythonのstringモジュールです。

import string
print('小文字を出力==>',string.ascii_lowercase)
print('大文字を出力==>',string.ascii_uppercase)
print('まとめて出力==>',string.ascii_letters)

結果は次の通り、ascii_lowercaseで小文字ascii_uppercaseで大文字、ascii_lettersで両方まとめて出力します。

小文字を出力==> abcdefghijklmnopqrstuvwxyz
大文字を出力==> ABCDEFGHIJKLMNOPQRSTUVWXYZ
まとめて出力==> abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

このほか、こんな便利なものもあります。

print('小文字を出力==>',string.hexdigits)
print('小文字を出力==>',string.punctuation)
string.whitespace
小文字を出力==> 0123456789abcdefABCDEF
小文字を出力==> !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
' \t\n\r\x0b\x0c'

hexdigitsで16進数やpunctuation英数字以外の一覧が表示されます。whitespaceで英数字以外のアスキー文字にある特殊記号が表示されますが、その性質上print文は使えません。最後にまとめて、printableでアスキー文字で印刷できるものを全て表示させます。

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

ちょっとした技ですが、便利そうです。

この記事を書いた人

目次
閉じる