Python 演算子
演算子とは?
この章では主にPythonの演算子について説明します。簡単な例を挙げます 4 +5 = 9 。この例では、4と54 と 5 はオペランド,+と呼ばれ、+ は演算子と呼ばれます。
Python言語は以下の種類の演算子をサポートしています:
それでは、Pythonの演算子について一つずつ学んでいきましょう。
Python 算術演算子
以下、変数を仮定します: a=10,b=20:
| 演算子 | 説明 | 例 |
|---|---|---|
| + | 加算 - 2つのオブジェクトを加算する | a + b は結果 30 を出力 |
| - | 減算 - 負の数を得る、またはある数から別の数を引く | a - b は結果 -10 を出力 |
| * | 乗算 - 2つの数を掛け算する、または指定回数繰り返された文字列を返す | a * b は結果 200 を出力 |
| / | 除算 - x を y で割る | b / a は結果 2 を出力 |
| % | 剰余 - 除算の余りを返す | b % a は結果 0 を出力 |
| ** | べき乗 - x の y 乗を返す | a**b は10の20乗で、結果 100000000000000000000 を出力 |
| // | 切り捨て除算 - 商の整数部分を返す(切り捨て) |
>>> 9//2 4 >>> -9//2 -5 |
以下の例は、Pythonのすべての算術演算子の操作を示しています:
例(Python 2.0+)
例を実行 »
上記の例の出力結果:
1 - c 的值为: 31 2 - c 的值为: 11 3 - c 的值为: 210 4 - c 的值为: 2 5 - c 的值为: 1 6 - c 的值为: 8 7 - c 的值为: 2
注意:Python2.x では、整数を整数で割ると、整数しか得られません。小数部分を得たい場合は、どちらかの数値を浮動小数点数に変更してください。
>>> 1/2 0 >>> 1.0/2 0.5 >>> 1/float(2) 0.5
Python 比較演算子
以下、変数 a を10、変数 b を20と仮定します:
| 演算子 | 説明 | 例 |
|---|---|---|
| == | 等しい - オブジェクトが等しいかどうかを比較する | (a == b) は False を返す。 |
| != | 等しくない - 2つのオブジェクトが等しくないかどうかを比較する | (a != b) は True を返す。 |
| <> | 等しくない - 2つのオブジェクトが等しくないかどうかを比較する。python3 では廃止されました。 | (a <> b) は True を返す。この演算子は != に似ています。 |
| > | 大なり - x が y より大きいかどうかを返す | (a > b) は False を返す。 |
| < | 小なり - x が y より小さいかどうかを返す。すべての比較演算子は、真の場合は1、偽の場合は0を返します。これはそれぞれ特別な変数 True と False に相当します。 | (a < b) は True を返す。 |
| >= | 以上 - x が y 以上であるかどうかを返す。 | (a >= b) は False を返す。 |
| <= | 以下 - x が y 以下であるかどうかを返す。 | (a <= b) は True を返す。 |
以下の例は、Pythonのすべての比較演算子の操作を示しています:
例(Python 2.0+)
上記の例の出力結果:
1 - a 不等于 b 2 - a 不等于 b 3 - a 不等于 b 4 - a 大于等于 b 5 - a 大于 b 6 - a 小于等于 b 7 - b 大于等于 a
Python 代入演算子
以下、変数 a を10、変数 b を20と仮定します:
| 演算子 | 説明 | 例 |
|---|---|---|
| = | 単純代入演算子 | c = a + b は、a + b の演算結果を c に代入する |
| += | 加算代入演算子 | c += a は c = c + a と同等 |
| -= | 減算代入演算子 | c -= a は c = c - a と同等 |
| *= | 乗算代入演算子 | c *= a は c = c * a と同等 |
| /= | 除算代入演算子 | c /= a は c = c / a と同等 |
| %= | 剰余代入演算子 | c %= a は c = c % a と同等 |
| **= | べき乗代入演算子 | c **= a は c = c ** a と同等 |
| //= | 切り捨て除算代入演算子 | c //= a は c = c // a と同等 |
以下の例は、Pythonのすべての代入演算子の操作を示しています:
例(Python 2.0+)
上記の例の出力結果:
1 - c 的值为: 31 2 - c 的值为: 52 3 - c 的值为: 1092 4 - c 的值为: 52 5 - c 的值为: 2 6 - c 的值为: 2097152 7 - c 的值为: 99864
Python ビット演算子
ビット演算子は、数値を2進数として扱って計算します。Pythonのビット演算の規則は次のとおりです:
下の表では変数 a は 60、b は 13 で、2進数形式は次のとおりです:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
| 演算子 | 説明 | 例 |
|---|---|---|
| & | ビットごとのAND演算子:演算に関与する2つの値の対応するビットが両方とも1の場合、そのビットの結果は1になり、それ以外は0になります。。 | (a & b) は結果 12 を出力、2進数での説明: 0000 1100 |
| | | ビットごとのOR演算子:対応する2つの2進ビットのいずれかが1であれば、結果ビットは1になります。 | (a | b) は結果 61 を出力、2進数での説明: 0011 1101 |
| ^ | ビットごとのXOR演算子:対応する2つの2進ビットが異なる場合、結果は1になります | (a ^ b) は結果 49 を出力、2進数での説明: 0011 0001 |
| ~ | ビットごとのNOT演算子:2進数表現の各ビットを反転し、0 は 1 に、1 は 0 になります。~xのような-x-1 | (~a ) は結果 -61 を出力、2進数での説明: 1100 0011(2の補数形式で表記)、符号付き2進数の2の補数形式です。 |
| << | 左シフト演算子:演算数の各2進ビットをすべて左に数ビットシフトし、そのシフト数は<<右側の数字で指定されます。上位ビットは破棄され、下位ビットには0が補われます。 | a << 2 は結果 240 を出力、2進数での説明: 1111 0000 |
| >> | 右シフト演算子:「>>」の左側のオペランドの各2進ビットをすべて右に数ビットシフトします。>>右側の数値はシフトするビット数を指定します。 | a >> 2 の出力結果は 15、2進数での解釈は 0000 1111 |
以下の例は、Pythonのすべてのビット演算子の操作を示しています。
例(Python 2.0+)
上記の例の出力結果:
1 - c 的值为: 12 2 - c 的值为: 61 3 - c 的值为: 49 4 - c 的值为: -61 5 - c 的值为: 240 6 - c 的值为: 15
Python 論理演算子
Python言語は論理演算子をサポートしています。以下、変数 a は 10、b は 20 と仮定します。
| 演算子 | 論理式 | 説明 | 例 |
|---|---|---|---|
| and | x and y | ブール「AND」- x が False の場合、x and y は False を返し、それ以外の場合は y の計算値を返します。 | (a and b) は 20 を返します。 |
| or | x or y | ブール「OR」- x が 0 でない場合、x の計算値を返し、それ以外の場合は y の計算値を返します。 | (a or b) は 10 を返します。 |
| not | not x | ブール「NOT」- x が True の場合、False を返します。x が False の場合、True を返します。 | not(a and b) は False を返します |
上記の例の出力結果:
例(Python 2.0+)
上記の例の出力結果:
1 - 变量 a 和 b 都为 True 2 - 变量 a 和 b 都为 True,或其中一个变量为 True 3 - 变量 a 和 b 有一个不为 True 4 - 变量 a 和 b 都为 True,或其中一个变量为 True 5 - 变量 a 和 b 都为 False,或其中一个变量为 False
Python メンバー演算子
上記のいくつかの演算子に加えて、Pythonはメンバー演算子もサポートしています。テスト例には、文字列、リスト、タプルなどの一連のメンバーが含まれています。
| 演算子 | 説明 | 例 |
|---|---|---|
| in | 指定されたシーケンス内で値が見つかった場合は True を返し、それ以外の場合は False を返します。 | x は y シーケンス内にある - x が y シーケンス内にある場合は True を返します。 |
| not in | 指定されたシーケンス内で値が見つからない場合は True を返し、それ以外の場合は False を返します。 | x は y シーケンス内にない - x が y シーケンス内にない場合は True を返します。 |
以下の例は、Pythonのすべてのメンバー演算子の操作を示しています。
例(Python 2.0+)
上記の例の出力結果:
1 - 变量 a 不在给定的列表中 list 中 2 - 变量 b 不在给定的列表中 list 中 3 - 变量 a 在给定的列表中 list 中
Python 同一性演算子
同一性演算子は、2つのオブジェクトのメモリ上の位置を比較するために使用されます。
| 演算子 | 説明 | 例 |
|---|---|---|
| is | is は、2つの識別子が同一のオブジェクトを参照しているかどうかを判定します | x is y、に類似id(x) == id(y)、参照しているオブジェクトが同じ場合は True を返し、それ以外の場合は False を返します |
| is not | is not は、2つの識別子が異なるオブジェクトを参照しているかどうかを判定します | x is not y、に類似id(a) != id(b)。参照しているオブジェクトが同じでない場合は True を返し、それ以外の場合は False を返します。 |
注: id()関数はオブジェクトのメモリアドレスを取得するために使用されます。
以下の例は、Pythonのすべての同一性演算子の操作を示しています。
例(Python 2.0+)
上記の例の出力結果:
1 - a 和 b 有相同的标识 2 - a 和 b 有相同的标识 3 - a 和 b 没有相同的标识 4 - a 和 b 没有相同的标识
is と == の違い:
is は、2つの変数が参照するオブジェクトが同じ(同じメモリ空間)かどうかを判断するために使用され、== は変数が参照する値が等しいかどうかを判断するために使用されます。
>>> a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
Python 演算子の優先順位
以下の表は、最高から最低の優先順位までのすべての演算子を示しています。
| 演算子 | 説明 |
|---|---|
| ** | 指数(最高優先順位) |
| ~ + - | ビット反転、単項プラスとマイナス(最後の2つのメソッド名は +@ と -@) |
| * / % // | 乗算、除算、剰余、切り捨て除算 |
| + - | 加算と減算 |
| >> << | 右シフト、左シフト演算子 |
| & | ビット 'AND' |
| ^ | | ビット演算子 |
| <= < > >= | 比較演算子 |
| <> == != | 等価演算子 |
| = %= /= //= -= += *= **= | 代入演算子 |
| is is not | 同一性演算子 |
| in not in | メンバー演算子 |
| not and or | 論理演算子 |
以下の例は、Pythonのすべての演算子の優先順位の操作を示しています。
例(Python 2.0+)
上記の例の出力結果:
(a + b) * c / d 运算结果为: 90 ((a + b) * c) / d 运算结果为: 90 (a + b) * (c / d) 运算结果为: 90 a + (b * c) / d 运算结果为: 50その他の拡張