Python はじめました:整形仕様 - 整数

Python.use(better) # Python はじめました記事一覧
整形仕様 - 整数

《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28

整形仕様〈Python 3.0 版〉

変換フィールドには、コロン「:」に続けて次のものを指定できます。

Type Meaning
b バイナリー書式(2進数)で出力します。
c 文字(整数を変換して対応する unicode 文字を得る)を出力します。
d 10進数で出力します。
o 8進数で出力します。
x 16進数(小文字を使って)で出力します。
X 16進数(大文字を使って)で出力します。
n 10進数(区切り文字を含めた書式)で出力します。
def ex():
    for e in "bcdoxXn":
        s = "'{{0:{0}}}'.format(78)".format(e)
        print(">>>",s)
        print("{0}".format(eval(s)))

% python3.0 -i ex.py
>>> ex()
>>> '{0:b}'.format(78)
1001110
>>> '{0:c}'.format(78)
N
>>> '{0:d}'.format(78)
78
>>> '{0:o}'.format(78)
116
>>> '{0:x}'.format(78)
4e
>>> '{0:X}'.format(78)
4E
>>> '{0:n}'.format(78)
78

文字 'N' に対応する文字コード 78 が、各書式に従って出力されるのが分かります。

def ex():
    for e in "bdoxXn":
        s = "'{{0:{0}}}'.format(123456789)".format(e)
        print(">>>",s)
        print("{0}".format(eval(s)))

% python3.0 -i ex.py
>>> ex()
>>> '{0:b}'.format(123456789)
111010110111100110100010101
>>> '{0:d}'.format(123456789)
123456789
>>> '{0:o}'.format(123456789)
726746425
>>> '{0:x}'.format(123456789)
75bcd15
>>> '{0:X}'.format(123456789)
75BCD15
>>> '{0:n}'.format(123456789)
123,456,789

このとき「:n」を指定すると、3桁ごとに(区切り文字として)カンマ「,」が出力されるのが分かります。

文字列の変換指令〈Python 2.x 版〉

変換指令には、記号「%」に続けて次のものを指定できます。

Type Meaning
c 文字(整数を変換して対応する unicode 文字を得る)を出力します。
d 10進数で出力します。
o 8進数で出力します。
x 16進数(小文字を使って)で出力します。
X 16進数(大文字を使って)で出力します。
def ex():
    for e in "cdoxX":
        s = "'%%%s'%%78"%e
        print(">>>",s)
        print(eval(s))

% python2.6 -i ex.py
>>> ex()
>>> '%c'%78
N
>>> '%d'%78
78
>>> '%o'%78
116
>>> '%x'%78
4e
>>> '%X'%78
4E

文字 'N' に対応する文字コード 78 が、各変換指令に従って出力されるのが分かります。

Last updated♪09/03/05