Pythonには文字列に関する定数や関数が入っているstringモジュールというものがあります.

その中でも 今回は使えそうな定数を紹介します.

$ ipython
Python 3.7.0 (default, Jun 28 2018, 07:39:16) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import string

In [2]: string.ascii_lowercase
Out[2]: 'abcdefghijklmnopqrstuvwxyz'

In [3]: string.ascii_uppercase
Out[3]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

In [4]: string.ascii_letters
Out[4]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

In [5]: string.ascii_letters == string.ascii_lowercase + string.ascii_uppercase
Out[5]: True

In [6]: string.digits
Out[6]: '0123456789'

In [7]: string.hexdigits
Out[7]: '0123456789abcdefABCDEF'

In [8]: string.octdigits
Out[8]: '01234567'

In [9]: string.whitespace
Out[9]: ' \t\n\r\x0b\x0c'

上のように

  • ascii_lowercaseは小文字のすべてを含む文字列
  • ascii_uppercaseは大文字すべてを含む文字列
  • ascii_lettersは英字すべてを含む文字列
  • string.digitsは0-9の数字すべてを含む文字列
  • string.hexdigitsは0-9, a-f, A-Fを含む文字列
  • string.octdigitsは0-7を含む文字列
  • string.whitespaceは全ての空白を含む文字列

となっています.

例えば 長さ36のランダムな英字の列を作成するには

>>> ''.join(random.choices(string.ascii_letters, k=36))
'nGfLHASVCvABIZKDKchsGyHBeryjaOgQuEyL'

などとできます.

また, 文字列の空白を全て削除するには

>>> text = '  anoa  \t\r agag\r ga\n'
>>> for w in string.whitespace:
...     text = text.replace(w, '')
...
>>> text
'anoaagagga'

などとできます.



外部リンク