工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python 基本演算子完全ガイド:算術、比較、論理、ビット演算など

演算子とは、オペランドの値を操作する構造のことです。

式 4 + 5 = 9 を考えます。ここで、4 と 5 はオペランドと呼ばれ、+ は演算子と呼ばれます。

演算子の種類

Python 言語は以下の種類の演算子をサポートしています。

それぞれの演算子を順に見ていきましょう。

Python 算術演算子

変数 a が 10、変数 b が 20 を保持していると仮定すると:

[ 例を表示 ]

演算子説明例
+ 加算演算子の両側の値を加算します。a + b = 30
- 減算右オペランドを左オペランドから減算します。a - b = -10
* 乗算演算子の両側の値を乗算します。a * b = 200
/ 除算左オペランドを右オペランドで除算します。b / a = 2
% 剰余左オペランドを右オペランドで除算し、余りを返します。b % a = 0
** 累乗オペランドに対して指数(累乗)計算を実行します。a**b = 10の20乗
// 床除算オペランドの除算で、結果が小数点以下の桁を削除した商になります。ただし、オペランドのいずれかが負の場合、結果は床関数となり、ゼロから離れる方向(負の無限大方向)に丸められます。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つのオペランドの値が等しくなければ条件は真になります。(a != b) は真です。
<>2つのオペランドの値が等しくなければ条件は真になります。(a <> b) は真です。!= 演算子と似ています。
>左オペランドの値が右オペランドの値より大きければ条件は真になります。(a > b) は真ではありません。
<左オペランドの値が右オペランドの値より小さければ条件は真になります。(a < b) は真です。
>=左オペランドの値が右オペランドの値以上であれば条件は真になります。(a >= b) は真ではありません。
<=左オペランドの値が右オペランドの値以下であれば条件は真になります。(a <= b) は真です。

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 と等価
%= 剰余代入2つのオペランドを使用して剰余を求め、結果を左オペランドに代入します。c %= a は c = c % a と等価
**= 累乗代入オペランドに対して指数計算を実行し、値を左オペランドに代入します。c **= a は c = c ** a と等価
//= 床除算代入オペランドに対して床除算を実行し、値を左オペランドに代入します。c //= a は c = c // a と等価

Python ビット演算子

ビット演算子はビット単位で動作し、ビットごとの演算を実行します。a = 60、b = 13 と仮定します。これらの値をバイナリ形式で表すと、それぞれ 0011 1100 と 0000 1101 になります。以下の表は、Python がサポートするビット演算子と、上記 2 つの変数(a と b)をオペランドとした例を示しています。

a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011

Python がサポートするビット演算子は以下の通りです。

[ 例を表示 ]

演算子説明例
& ビットANDビットが両オペランドに存在する場合、そのビットを結果にコピーします。(a & b) (0000 1100 を意味する)
| ビットORビットがいずれかのオペランドに存在する場合、そのビットをコピーします。(a | b) = 61 (0011 1101 を意味する)
^ ビットXORビットが一方のオペランドのみにセットされている場合、そのビットをコピーします。(a ^ b) = 49 (0011 0001 を意味する)
~ ビット反転単項演算子で、ビットを「反転」させる効果があります。(~a) = -61 (符号付き2進数のため、2の補数形式で 1100 0011 を意味する)
<< 左シフト左オペランドの値を、右オペランドで指定されたビット数だけ左にシフトします。a << 2 = 240 (1111 0000 を意味する)
>> 右シフト左オペランドの値を、右オペランドで指定されたビット数だけ右にシフトします。a >> 2 = 15 (0000 1111 を意味する)

Python 論理演算子

Python がサポートする論理演算子は以下の通りです。変数 a が 10、変数 b が 20 を保持していると仮定すると:

[ 例を表示 ]

演算子説明例
and 論理AND両オペランドが真であれば条件は真になります。(a and b) は真です。
or 論理OR2つのオペランドのいずれかが非ゼロであれば条件は真になります。(a or b) は真です。
not 論理NOTオペランドの論理状態を反転させます。Not(a and b) は偽です。

Python メンバーシップ演算子

Python のメンバーシップ演算子は、文字列、リスト、タプルなどのシーケンス内のメンバーシップをテストします。以下の 2 つのメンバーシップ演算子があります。

[ 例を表示 ]

演算子説明例
in指定されたシーケンス内に変数が見つかれば真、見つからなければ偽と評価されます。x in y:x がシーケンス y のメンバーであれば 1 になります。
not in指定されたシーケンス内に変数が見つからなければ真、見つかれば偽と評価されます。x not in y:x がシーケンス y のメンバーでなければ 1 になります。

Python アイデンティティ演算子

アイデンティティ演算子は、2つのオブジェクトのメモリ位置を比較します。以下の 2 つのアイデンティティ演算子があります。

[ 例を表示 ]

演算子説明例
is演算子の両側の変数が同じオブジェクトを指していれば真、そうでなければ偽と評価されます。x is y:id(x) が id(y) と等しければ is は 1 になります。
is not演算子の両側の変数が同じオブジェクトを指していれば偽、そうでなければ真と評価されます。x is not y:id(x) が id(y) と等しくなければ is not は 1 になります。

Python 演算子の優先順位

以下の表は、すべての演算子を最高優先順位から最低優先順位の順に示しています。

[ 例を表示 ]

番号演算子と説明
1

**

累乗(べき乗)

2

~ + -

補数、単項プラスとマイナス(最後の2つのメソッド名は +@ と -@)

3

* / % //

乗算、除算、剰余、床除算

4

+ -

加算と減算

5

>> <<

右と左のビットシフト

6

&

ビット単位 'AND'

7

^ |

ビット単位排他的 'OR' と通常の 'OR'

8

<= < > >=

比較演算子

9

<> == !=

等価演算子

10

= %= /= //= -= += *= **=

代入演算子

11

is is not

アイデンティティ演算子

12

in not in

メンバーシップ演算子

13

not or and

論理演算子

Python

  1. Python データ型マスター: 実践ガイド
  2. Python 演算子完全マスター: 包括的ガイド
  3. Python pass文完全マスター: 実践ガイド
  4. Python 関数引数完全マスター: 位置引数・キーワード引数・デフォルト引数
  5. Python辞書完全ガイド:作成、操作、高度なテクニック
  6. Pythonイテレータ完全ガイド:仕組みと自作方法
  7. Pythonクロージャ解説:ネスト関数が変数を捕捉する仕組み
  8. Python datetimeマスター:日付・時刻・タイムゾーン実践ガイド
  9. Python 概要:高水準、読みやすい、インタラクティブ、オブジェクト指向
  10. Python 基礎マスター:構文とファンダメンタルズ完全ガイド
  11. Java演算子完全ガイド:算術/関係/ビット/論理/代入/三項/instanceof