文字列の数字を数値(整数)として扱いたいんですけど。
組み込み関数の「int()」を使うと数値(整数)に変換できるよ。
はじめに
文字列の数字を整数値に変換します。
用法
class int(x, base=10)
x が数値でない、あるいは base が与えられた場合、 x は文字列、
bytes
インスタンス、bytearray
インスタンスのいずれかで、基数 base の 整数リテラル で表されたものでなければなりません。 オプションで、リテラルの前に+
あるいは-
を (中間のスペースなしで) 付けることができます。 また、リテラルは余白で囲むことができます。 基数 n のリテラルは、 0 から n-1 の数字に値 10-35 を持つa
からz
(またはA
からZ
) を加えたもので構成されます。 デフォルトの base は 10 です。 許される値は 0 と 2–36 です。 基数 2, 8, 16 のリテラルは、別の記法としてコード中の整数リテラルのように0b
/0B
,0o
/0O
,0x
/0X
を前に付けることができます。 基数 0 はコードリテラルとして厳密に解釈することを意味します。 その結果、実際の基数は 2, 8, 10, 16 のどれかになります。 したがってint('010', 0)
は有効ではありませんが、int('010')
やint('010', 8)
は有効です。
例
val = '10'
# 型を確認
print(type(val))
# 値を確認
print(int(val))
# 型を確認
print(type(int(val)))
<class 'str'>
10
<class 'int'>
引数にプラス(+)やマイナス(ー)をつけることも可能です。
16進数の文字列の場合
val = '0xFF'
print( int(val, 16) )
ここでは、16進数の文字列を扱うため引数 base
に 16 を指定しています。16進数の文字列の数値が返されます。
255
ValueError
val = 'a10'
try:
print(int(val))
except ValueError:
print(val, 'は整数ではありません。')
整数に変換できない引数を指定すると ValueError
となります。
a10 は整数ではありません。
おわりに
引数 base
に、2、8、16 の指定をするとそれぞれ、2進数、8進数、16進数として扱われるのですね。
そうだね。
引数 base のデフォルトは10進数なので、その場合は引数に10を指定しなくていいよ。
[A8_TechAcademy065]
[Footer]