文字列及び数値を整数に変換(int)

広告

数値と数値の間では演算を行うことができますが、数値と文字列では四則演算を行うことは出来ません。例えば下記のように数値と文字列を「+」演算子で演算を行うと「TypeError」が発生します。

10 + "12"  # TypeError

例え文字列に格納されている文字が数字だったとしても不可です。このような場合には文字列を数値に変換することで演算を行うことが可能となります。文字列を数値に変換するには組み込み関数の一つである「int」関数を使用します。

int([x[, radix]])

1番目の引数には数値に変換したい文字列を指定します。文字列に含まれる文字は10進数で表すことが出来る数字である必要があります。「int」関数は結果として文字列に含まれる数字と同じ数値を新しく作成して返します。

int("14")    # 14
int("84")    # 84

2番目の引数には基数を指定することが可能です。基数で指定可能な値は2から36となっています。例えば基数に16を指定した場合は、1番目の引数の文字列が16進数の数字と判断し、それを10進数に変換した数値を返します。

下記は同じ文字列に対して基数として10、8、16をそれぞれ指定した場合です。

int("14", 10)   # 10
int("14", 8)    # 12
int("14", 16)   # 20

なお例えば基数に16を指定した場合は文字列に「A」から「F」までの値が含まれていても問題ありませんが、基数に「10」を指定した場合には「0」から「9」以外の文字が含まれているとエラーとなります。

int("3F", 10)   # ValueError
int("3F", 16)   # 63
数値を整数へ変換

「int」関数は文字列を変換するだけではなく、数値を整数に変換することも可能です。1番目の引数に浮動小数点数を指定するとゼロ方向に値を丸めた整数型の新しい数値を返します。

int(16.8)   # 16
int(-7.2)   # -7

なお1番目の引数に文字列ではなく数値を指定した場合、2番目の引数を指定すると「TypeError」が発生します。

サンプルコード

では実際に試してみます。

#coding: UTF-8

print 'int("14") = ', int("14")
print 'int("14", 10) = ', int("14", 10)
print 'int("14", 8) = ', int("14", 8)
print 'int("14", 16) = ', int("14", 16)
print 'int("3F", 16) = ', int("3F", 16)

print 'int(14) = ', int(14)
print 'int(16.8) = ', int(16.8)
print 'int(-7.2) = ', int(-7.2)

上記を「test6-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

文字列及び数値を整数に変換(int)

( Written by Tatsuo Ikura )