Pythonで整数・浮動小数点数・複素数間の型変換
この記事では、Pythonにおける整数、浮動小数点数、複素数の型変換について解説します。それぞれの型の特徴と、変換方法、そして注意点について具体的なコード例を交えて説明します。
目次
整数型 (int)
整数型は、小数点を含まない数値を表すデータ型です。例:10, -5, 0
integer_variable = 10
print(type(integer_variable)) # <class 'int'>
整数リテラルは、10進数、16進数、8進数で記述できます。
# 10進数
decimal = 10
# 16進数
hexadecimal = 0xA
# 8進数
octal = 0o12
print(decimal, hexadecimal, octal) # 10 10 10
浮動小数点型 (float)
浮動小数点型は、小数点を含む数値を表すデータ型です。例:3.14, -2.5, 0.0
float_variable = 3.14
print(type(float_variable)) # <class 'float'>
浮動小数点数は、指数表記も使用できます。
exponential_notation = 1.2e3
print(exponential_notation) # 1200.0
複素数型 (complex)
複素数型は、実数部と虚数部からなる数値を表すデータ型です。例:2+3j, -1-2j
complex_variable = 2 + 3j
print(type(complex_variable)) # <class 'complex'>
print(complex_variable.real) # 2.0
print(complex_variable.imag) # 3.0
型変換関数
Pythonでは、int(), float(), complex()関数を用いて、明示的に型変換を行うことができます。
integer = 10
float_number = float(integer) # int -> float
print(float_number) # 10.0
complex_number = complex(integer) # int -> complex
print(complex_number) # (10+0j)
string_number = "3.14"
float_from_string = float(string_number) # string -> float
print(float_from_string) #3.14
型変換ができない場合は、ValueErrorが発生します。
暗黙的な型変換
演算において、異なる型の変数が混在する場合、Pythonは自動的に型変換を行うことがあります。これは、暗黙的な型変換と呼ばれます。
integer = 10
float_number = 3.14
sum = integer + float_number
print(sum) # 13.14
print(type(sum)) # <class 'float'>
整数と浮動小数点数の加算では、整数が浮動小数点数に変換されます。
明示的な型変換
暗黙的な型変換に頼るのではなく、int(), float(), complex()関数を用いて明示的に型変換を行うことを推奨します。これにより、コードの可読性が向上し、予期せぬエラーを防ぐことができます。
integer = 10
float_number = 3.14
sum = int(float_number) + integer #明示的な型変換
print(sum) # 13
この例では、float_numberを整数型に変換してから、integerと加算しています。
注意点
型変換を行う際には、データの精度や範囲に注意する必要があります。特に、浮動小数点数から整数への変換では、小数部分が切り捨てられるため、データが失われる可能性があります。
- 浮動小数点数から整数への変換には、int()関数が使用されます。小数部分は切り捨てられます。
- 文字列から数値への変換には、int()やfloat()関数を使用します。数値以外の文字列を変換しようとするとValueErrorが発生します。
- 複素数から実数への変換は、.real属性を使用します。
- 複素数から虚数への変換は、.imag属性を使用します。
関連記事
- Pythonで四捨五入・切り上げ・切り捨て(round, math.ceil, math.floor)
- Pythonで絶対値を取得(abs)
- Pythonで数値の書式設定(format, f文字列 (Python 3.6以降))
- Pythonで分数演算(fractions.Fraction)
- Pythonで十進数演算(decimal.Decimal)
- Pythonで関数に型ヒントをつける (Python 3.5以降)
- Pythonで対数・指数関数を計算(math.log, math.exp, etc.)
- Pythonで三角関数を計算(math.sin, math.cos, math.tan, etc.)
- Pythonでべき乗計算(**)