文字型を持っている C言語であれば、以下のような書き方になると思います。
for (char c = 'A'; c <= 'Z'; c++) { printf("%c", c); // => A B C ... Z }Pythonでも同様の書き方は可能です。
for i in range(ord('A'), ord('Z') + 1): print(chr(i)) # => A B C ... Z
しかし、Python は文字型を持たない故、Python らしくない書き方です。より Pythonic な方法は無いものでしょうか?
これを解決するのが string モジュールです。
string モジュールには、よく使われると思われる制御文字列が定義されています。
'ABC...Z' の文字列も定義されています。
import string print(string.ascii_uppercase) # => ABCDEFGHIJKLMNOPQRSTUVWXYZ for i in string.ascii_uppercase: print(i) # => A B C ... Z
string には他にも以下の固定文字列が定義されています。なかなか気の利くモジュールですね。
>>> import string >>> string.ascii_uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> string.ascii_lowercase 'abcdefghijklmnopqrstuvwxyz' >>> string.ascii_letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> string.digits '0123456789' >>> string.hexdigits '0123456789abcdefABCDEF' >>> string.octdigits '01234567' >>> string.printable '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c' >>> string.punctuation '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' >>> string.whitespace ' \t\n\r\x0b\x0c'
0 件のコメント:
コメントを投稿