整数、実数、複素数の演算
Pythonでは数値として整数(intとlong)、実数および複素数を扱うことができます。
整数にはint型とlong型があります。int型はC言語(32bit整数と同じです。一方、long型は特にビット数に制限はなく非常に大きな整数も扱うことができます(その代わり処理が遅くなる)。
long整数はLを付けて普通の整数と区別します。
n = 10000000000L
実数はC言語のdouble型相当です。
複素数はC言語では標準実装されていませんが、数値計算の分野ではよく利用されます。複素数は次のように記述します。
z = 1 + 1j # jの代わりにiは不可
演算子と関数
演算 | 意味 | コメント |
a + b | 足し算 | |
a - b | 引き算 | |
a * b | 掛け算 | |
a / b | 割り算 | |
a % b | 余り | |
-a | 符号の反転 | |
+a | 符号はそのまま | |
abs(a) | 絶対値 | 複素数も可 |
a.conjugate() | 共役複素数 | 複素数のみ |
divmod(a, b) | 商と余り | |
pow(a, b) | べき乗 | a**bと同じ。実数、複素数も可 |
a ** b | べき乗 | pow(a, b)と同じ。実数、複素数も可 |
Python 2.0ではこの他
+=, -=, *=, /=, %=, **=
も使用できます。
(複素数の演算例)
# complex number import cmath print "complex test" z = 1+1j # 1+1i is illegal. print abs(z) print z.conjugate() w = complex(3, 1) print w w = cmath.sin(z) print w w = 1 % z print w w = z ** 2 print w |
(実行結果)
complex test
1.41421356237
(1-1j)
(3+1j)
(1.29845758142+0.634963914785j)
(1+0j)
2j