オペレーター#

導入#

Pythonの演算子は、値や変数に対して演算を実行できる特別な記号とキーワードです。算術演算や比較演算から論理演算、ビット演算、代入演算まで、幅広い機能を網羅しています。これらの演算子を使いこなすことは、表現力豊かで効率的なPythonコードを作成する上で不可欠です。なぜなら、プログラムにおけるほぼすべての計算や意思決定プロセスの基盤となるからです。以下に、各演算子の簡潔な例を示しますので、使用方法と期待される結果を理解するのに役立ててください。

Arithmetic#

名前

シンボル

オペレーター

例

追加

+

a + b

5 + 3 # 8

分割

/

a / b

10 / 4 # 2.5 (常に浮動小数点数を返します)

指数関数

**

a ** b

2 ** 3 # 8

フロア区分

//

a // b

10 // 4 # 2 (常に整数を返します)

モジュロ

%

a % b

10 % 4 # 2

乗算

*

a * b

5 * 3 # 15

否定

-

- a

- 5 # -5

引き算

-

a - b

10 - 3 # 7

Augmented Arithmetic#

名前

シンボル

オペレーター

例

追加

+=

a += b

a = 5
b = 3
a += b # a = 8

分割

/=

a /= b

a = 10
b = 4
a /= b # a = 2.5

指数関数

**=

a **= b

a = 2
b = 3
a **= b # a = 8

フロア区分

//=

a //= b

a = 10
b = 4
a //= b # a = 2

モジュラス

%=

a %= b

a = 10
b = 3
a %= b # a = 1

乗算

*=

a *= b

a = 2
b = 3
a *= b # a = 6

引き算

-=

a -= b

a = 10
b = 4
a -= b # a = 6

Comparison#

名前

シンボル

オペレーター

例

平等

==

a == b

5 == 5 # True

不平等

!=

a != b

5 != 10 # True

より大きい

>

a > b

10 > 5 # True

以上

>=

a >= b

10 >= 5 # True

未満

<

a < b

5 < 10 # True

以下

<=

a <= b

5 <= 5 # True

連鎖比較

varies

a < b < c

1 < 2 < 3 # True (1 < 2) and (2 < 3)

Logical#

名前

シンボル

例

間違い

False

特定の値は、 Falseとして定義されています。これには以下が含まれます。

  • None
  • False
  • 任意の型の数値ゼロ: 0、 0.0、 0j
  • 空のシーケンスとコレクション: ‘’ (空文字列)、 [] (空リスト)、 () (空タプル)、 {} (空辞書)、 set()など。

真実

True

明示的に False でないオブジェクトはすべて Trueとみなされます。たとえば、空でない文字列、ゼロ以外の数値、空でないリスト、およびカスタムオブジェクト (真理値メソッドをオーバーライドして Falseを返す場合を除く) は Trueとして扱われます。


名前

シンボル

オペレーター

例

身元

>is

a is b

[1] is [1] # False

アイデンティティではない

is not

a is not b

5 is not 10 # True

論理AND

and

a and b

True and False # False

論理否定

not

not a

not False # True

論理OR

or

a or b

False or True # True

条件式

if else

x if condition else y

“Yes” if 5 > 3 else “No” # “Yes”

Sequences (Lists, Tuples, Strings)#

名前

シンボル

オペレーター

例

連結

+

seq1 + seq2

[1, 2] + [3, 4] # [1, 2, 3, 4]

スライス割り当て

seq[i:j] = values

lst = [1, 2, 3, 4]
lst[1:3] = [20, 30] # lst = [1, 20, 30, 4]

スライス削除

del seq[i:j]

lst = [1, 2, 3, 4]
del lst[1:3] # lst = [1, 4]

スライス

seq[i:j]

lst = [1, 2, 3, 4]
lst[1:3] # [2, 3]

Dictionaries (Mappings)#

名前

シンボル

オペレーター

例

インデックス付き課題

obj[k] = v

d = {}
d[‘a’] = 1 # d = {‘a’: 1}

インデックス付き削除

del obj[k]

d = {‘a’: 1}
del d[‘a’] # d = {}

インデックス作成

obj[k]

d = {‘a’: 1}<br>d[‘a’] # 1

String Formatting#

名前

シンボル

オペレーター

例

文字列の書式設定

%

s % obj

str = “Hello, %(name)s” % {“name”: “Alice”} # str = ‘Hello, Alice’

Membership#

名前

シンボル

オペレーター

例

封じ込め試験

in

obj in seq

‘a’ in ‘cat’ # True

会員資格の否定(不参加)

not in

a not in b

‘x’ not in ‘hello’ # True

Bitwise#

名前

シンボル

オペレーター

例

ビットごとのAND

&

a & b

6 & 3 # 2 (0b110 & 0b011 = 0b010)

ビットごとの排他的論理和 (XOR)

^

a ^ b

6 ^ 3 # 5 (0b110 ^ 0b011 = 0b101)

ビットごとの反転(NOT)

~

~ a

~5 # -6 (~0b101 yields -6 in two’s complement)

ビットごとの論理和

|

a | b

6 | 3 # 7 (0b110 | 0b011 = 0b111)

左シフト

<<

a << b

2 << 3 # 16 (0b10 << 3 becomes 0b10000)

右シフト

>>

a >> b

16 >> 2 # 4 (0b10000 >> 2 becomes 0b100)

Augmented Bitwise#

名前

シンボル

オペレーター

例

拡張ビット演算AND

&=

a &= b

a = 6
b = 3
a &= b # a = 2 (0b110 & 0b011 = 0b010)

拡張ビット単位排他的論理和 (XOR)

^=

a ^= b

a = 6
b = 3
a ^= b # a = 5 (0b110 ^ 0b011 = 0b101)

拡張ビットごとの論理和

|=

a |= b

a = 6
b = 3
a |= b # a = 7 (0b110 | 0b011 = 0b111)

拡張左シフト

<<=

a <<= b

a = 5
b = 2
a <<= b # a = 20 (5 << 2 equals 5 * 2²)

右シフトの拡大

>>=

a >>= b

a = 20
b = 2
a >>= b # a = 5 (20 >> 2 equals 20 // 2²)