Pythonのcomplex()メソッドは、他のプリミティブなデータ型から複素数を生成するために使用されます。
これは、複雑な算術や変換を素早く行いたいときに便利です。
では、このメソッドの使い方を見てみましょう。
Python complex() のシンタックス
この関数は、実部と虚部を含む複素数を返します。
複素数は class complex データ型です。
したがって、関数呼び出しの構文は次のようになります。
class complex([real[, imag]])
|
複素数は次のような形式になります。
complex_number = real + imag*j
|
ここで、 j は虚数(sqrt(-1))です。
Pythonの complex() メソッドはこの複素数を返します。
このメソッドに慣れるために、いくつかの例を見てみましょう。
複素数を作るには、整数と浮動小数点数しか使えないと思うかもしれませんが、そうではありません。
文字列、16進数、2進数、さらには別の複素数からも複素数を構成することができるのです。
この点を説明するために、いくつかの例を見てみましょう。
Pythonのcomplex()メソッドを使用する
パラメータを指定せずにcomplex()を呼び出す
このメソッドに引数を渡さずに呼び出すことができます。
これはゼロの複素数 0j を返します。
a = complex()
print(type(a))
print(a)
|
結果は以下の通りです。
<class 'complex'>
0j |
数値パラメータを用いた Python complex() の呼び出し
ここで、a と b は数値パラメータです。
a = complex(1, 2)
print(a)
b = complex(1, 1.5)
print(b)
c = complex(-1.5, 3.414)
print(c)
|
結果は以下の通りです。
(1+2j)(1+1.5j)(-1.5+3.414j) |
16進数/2進数引数でcomplex()を呼び出す場合
16進数や2進数を整数に変換せず、直接渡すこともできます。
a = complex(0xFF) # hexadecimal
print(a)
b = complex(0b1010, -1) # binary
print(b)
|
結果は以下の通りです。
(255+0j)(10-1j) |
別の複素数を使った complex() の呼び出し
complex()` を用いて複素数を計算する場合、別の複素数を渡すこともできます。
a = 1 + 2j
b = complex(a, -4) # Construct using another complex number
print(b)
c = complex(1+2j, 1+2J)
print(c)
|
結果は以下の通りです。
(1-2j)(-1+3j) |
両方の引数は a + b*j という形式で加算されるので、最初の場合、結果は次のようになります。
2番目の場合、(jTech*j = -1なので)次のようになる。
文字列引数を用いた Python complex() の呼び出し
間に空白がなければ、文字列も一緒に渡すことができます。
文字列は “a+bj” の形式、つまり複素数を表すことができる文字列のみでなければなりません。
文字列を使う場合、引数は1つだけです。
a = complex("1+2j")
print(a)
|
結果は以下の通りです。
(1+2j) |
文字列に空白やその他の余計な文字がある場合、ValueError 例外が発生します。
b = complex("2 + 4j")
print(b)
|
これは、文字列に空白があるため、 ValueError が発生します。
同様に、Pythonの complex() に2つの引数を渡すと、 TypeError 例外が発生します。
まとめ
この記事では、組み込みの complex() メソッドを使って、異なるデータ型から複素数を作成する方法を学びました。
他のPython組み込み関数について学びたい場合は、こちらをご覧ください。
この記事もチェック:Pythonのmapメソッドの使い方|ラムダ関数や引数が複数の場合の使い方も解説