PYTHON MEBY

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属性を使用します。

関連記事