Contents
Pythonの基本演算子
演算子は、オペランドの値を操作できる構造体です。
式4 + 5 = 9を考えてみましょう。ここで、4と5はオペランドと呼ばれ、+は演算子と呼ばれます。
オペレータの種類
Python言語は、以下のタイプの演算子をサポートしています。
- 算術演算子
- 比較(リレーショナル)演算子
- 代入演算子
- 論理演算子
- ビット演算子
- メンバーシップオペレーター
- アイデンティティ演算子
すべての演算子を1つずつ見てみましょう。
Pythonの算術演算子
変数aは10を保持し、変数bは20を保持すると考える
[ 表示例 ]オペレーター | 説明 | 例 |
---|---|---|
+加算 | 演算子の両側に値を追加します。 | a + b = 30 |
– 減算 | 左手オペランドから右手オペランドを減算します。 | a-b = -10 |
*乗算 | 演算子の両側の値を乗算します。 | a * b = 200 |
/部門 | 左手オペランドを右手オペランドで除算する | b / a = 2 |
%モジュラス | 左オペランドを右オペランドで除算し、余りを返します。 | b%a = 0 |
**指数 | オペレータに対して指数関数的な計算を実行します。 | a ** b = 10のパワー20 |
// | Floor Division – 小数点以下の桁が削除される商を結果とするオペランドの除算。 | 9 // 2 = 4および9.0 // 2.0 = 4.0、-11 // 3 = -4、-11.0 // 3 = -4.0 |
Pythonの比較演算子
これらの演算子は、それらの両辺の値を比較し、それらの間の関係を決定します。それらは、関係演算子とも呼ばれます。
変数aは10を保持し、変数bは20を保持すると考える
[ 表示例 ]オペレーター | 説明 | 例 |
---|---|---|
== | 2つのオペランドの値が等しい場合、条件は真となります。 | (a == b)は真ではありません。 |
!= | 2つのオペランドの値が等しくない場合、条件は真となります。 | |
> | 左オペランドの値が右オペランドの値より大きい場合、conditionはtrueになります。 | (a> b)は真ではない。 |
< | 左オペランドの値が右オペランドの値より小さい場合、条件は真となります。 | (a <b)は真です。 |
> = | 左オペランドの値が右オペランドの値以上であれば、条件は真となります。 | (a> = b)は真ではない。 |
<= | 左オペランドの値が右オペランドの値以下であれば、条件は真となります。 | (a <= b)は真です。 |
Python代入演算子
変数aは10を保持し、変数bは20を保持すると考える
[ 表示例 ]オペレーター | 説明 | 例 |
---|---|---|
= | 右側のオペランドの値を左側のオペランドに割り当てます。 | c = a + bはa + bの値をcに代入する |
+ = ANDを加算する | 左オペランドに右オペランドを追加し、左オペランドに結果を代入します | c + = aはc = c + aと等価です。 |
– = ANDを引く | 左のオペランドから右のオペランドを減算し、その結果を左のオペランドに代入する | c – = aはc = c – aと等価です |
* =乗算AND | 右オペランドと左オペランドを乗算し、その結果を左オペランドに代入します | c * = aはc = c * aと等価です。 |
/ =除算AND | 左オペランドと右オペランドを除算し、結果を左オペランドに代入します | c / = aはc = c / ac / = aと等価です。これはc = c / aと等価です。 |
%=モジュラスAND | 2つのオペランドを使用してモジュラスをとり、その結果を左のオペランドに代入します | c%= aはc = c%aと等価です |
** =指数AND | 演算子の指数演算を実行し、左のオペランドに値を代入します。 | c ** = aはc = c ** aと等価です。 |
//フロアディビジョン | 演算子のフロア分割を行い、左のオペランドに値を代入します | c // = aはc = c // aと等価です。 |
Pythonビット演算子
ビット単位の演算子はビット単位で動作し、ビット単位で実行します。a = 60ならば、b = 13である。バイナリ形式では、次のようになります。
a = 0011 1100
b = 0000 1101
—————–
a&b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
〜a = 1100 0011
Python言語でサポートされている以下のビット演算子があります
[ 表示例 ]オペレーター | 説明 | 例 | |
---|---|---|---|
& Binary AND | 演算子は、両方のオペランドに存在する場合、結果にビットをコピーします。 |
|
|
| Binary OR | いずれかのオペランドに存在する場合は、それをコピーします。 |
|
|
^ Binary XOR | ビットが1つのオペランドに設定されている場合はそのビットをコピーしますが、両方をコピーすることはできません。 |
|
|
~ Binary Ones Complement | これは単項式であり、ビットを反転させる効果があります。 |
|
|
<< Binary Left Shift | 左オペランドの値は、右オペランドで指定されたビット数だけ左に移動します。 |
|
|
|
左オペランドの値は、右オペランドで指定されたビット数だけ右に移動します。 | a >> 2 = 15 (means 0000 1111) |
Python論理演算子
Python言語でサポートされている以下の論理演算子があります。変数aは10を保持し、変数bは20を保持すると仮定します。
[ 表示例 ]オペランドの論理状態を反転するために使用します。
Pythonメンバーシップオペレータ
Pythonのメンバーシップ演算子は、文字列、リスト、タプルなどのシーケンスのメンバシップをテストします。以下に説明する2つのメンバーシップ演算子があります
[ 表示例 ]オペレーター | 説明 | 例 | |
---|---|---|---|
in | 指定したシーケンス内の変数を検出するとtrueに評価し、そうでない場合はfalseを返します。 | x in y、ここでは、xがシーケンスyのメンバーであれば1になります。 | |
|
指定されたシーケンス内の変数が見つからない場合はtrueに、それ以外の場合はfalseに評価されます。 | xが配列yのメンバーでない場合は、1になります。 |
Pythonアイデンティティ演算子
ID演算子は、2つのオブジェクトのメモリ位置を比較します。以下に説明する2つのID演算子があります。
[ 表示例 ]オペレーター | 説明 | 例 | |
---|---|---|---|
is | 演算子の両側の変数が同じオブジェクトを指している場合はtrue、それ以外の場合はfalseと評価されます。 | xがyである場合。id(x)がid(y)と等しい場合 | |
|
演算子の両側の変数が同じオブジェクトを指す場合はfalse、それ以外の場合はfalseを評価します。 | xがyでない場合、id(x)がid(y)と等しくない場合 |
Python演算子の優先順位
次の表は、すべての演算子を優先順位の高い順にリストしています。
[ 表示例 ]オペレーター | 説明 | |
---|---|---|
** | 累乗(累乗) | |
〜+ – | 補数、単項プラスとマイナス(最後の2つのメソッド名は+ @と – @です) | |
* /%// | 乗算、除算、モジュロ、フロア分割 | |
+ – | 加算と減算 | |
>> << | 左右のビットシフト | |
& | ビット単位のAND | |
^ | | ビットごとの排他的論理和と論理和の論理和 | |
<= <>> = | 比較演算子 | |
<> ==!= | 等価演算子 | |
=%= / = // = – = + = * = ** = | 代入演算子 | |
is is not | ID演算子 | |
|
メンバーシップオペレータ | |
not or and | 論理演算子 |
次のページ⑦