【Python】 文字列定数について(stringモジュール)

Pythonでは、空白文字や英小文字や数字などがstringモジュールで定義されています。今回はそれらについて調べてみました。

確認した環境

  • OS: Ubuntu16.04LTS
  • Python3.7.2@Anaconda

文字列定数

stringモジュールでは下記の文字列が定義されています。

内容 変数(stringモジュール) 該当する文字
空白文字 whitespace \t\n\r\v\f
英小文字 ascii_lowercase abcdefghijklmnopqrstuvwxyz
英大文字 ascii_uppercase ABCDEFGHIJKLMNOPQRSTUVWXYZ
英文字 ascii_letters ascii_lowercase + ascii_uppercase
数字 digits 0123456789
16進数を表す文字列 hexdigits digits + ‘abcdef’ + ‘ABCDEF’
8進数を表す文字列 octdigits 01234567
句読点として扱われる ASCII 文字の文字列 punctuation !”#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~
印刷可能な ASCII 文字 printable digits + ascii_letters + punctuation + whitespace

実際にコードで見てみます。

>>> import string

# 空白文字
>>> string.whitespace
' \t\n\r\x0b\x0c'

# 英小文字
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'

# 英大文字
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

# 数字
>>> string.digits
'0123456789'

# 16進数用の文字
>>> string.hexdigits
'0123456789abcdefABCDEF'

# 8進数用の文字
>>> string.octdigits
'01234567'

# 句読点などの記号類
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

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

参考:公式リファレンス: string — 一般的な文字列操作 文字列定数
https://docs.python.org/ja/3/library/string.html?highlight=%E5%B0%8F%E6%96%87%E5%AD%97#string-constants

まとめ

Pythonで定義されている空白文字や英数字など文字列定数についてまとめました。

Learn more...

書籍でもう少し詳しく学びたい場合はこちらもどうぞ。筆者もかなり参考にさせてもらっています!

[Sponsor link]