【Python入門】 演算子まとめ
今回は、Python で使える演算子についてまとめました。
演算子(えんざんし)とは、足し算や掛け算などの 計算をする時に使う記号 のことです。
まずは Python の基礎である演算子の使い方からマスターしましょう。
Python の基礎を本にまとめています。併せてご覧いただけるととても嬉しいです ↓
皆さんの理解が一歩でも進むと嬉しいです。
Created by NekoAllergy
演算子って?
演算子(えんざんし)とは、足し算や掛け算などの 計算をする時に使う記号 のことです。
たとえば?
たとえば、Python で足し算、引き算、掛け算、割り算をするときは、次のように書きます。
このときの+
や-
や*
や/
を 演算子 と呼びます。
print(1 + 1) #足し算
print(5 - 4) #引き算
print(3 * 4) #掛け算
print(4 / 3) #割り算
2
1
12
1.33333333
何が便利なの?
こんなの楽勝すぎる。と思ったかもしれません。しかし、この処理を組み合わせていくと、色々なことができるようになります。
たとえば、
- この結果が 10 になったから次の処理へ進む、とか
- この結果が True になった場合は処理 A へ、False の場合は処理 B へ進む
などの複雑な処理につなげることができます。演算子は全ての基礎です。
なんで演算子を学ぶ必要があるのか?
プログラミングは、コンピュータにどんな動作をするのかを教えてあげることです。
プログラムは内部でとても複雑な処理を行なっていますが、 元を辿れば、足し算や掛け算などの簡単な計算を組み合わせる ことで全てが成り立っています。
四則演算はプログラムの基礎です。基礎はすべての土台です。応用はあくまで基礎ができた延長線上にあるので、土台があやふやなまま次のステップに進んでも正しく理解できません。
Python では演算子を使った計算(四則演算など)を簡単に書くことができるので、まずはその使い方からマスターしましょう。
演算子を使ってできることは 電卓レベルの計算 です。しかし、次のステップに進むためには、無くてはならない基本的な処理です。
もし使い方を忘れたときは、以下の内容を見返してください。少しだけ詳しい内容も、まとめて書いてあります。
演算子まとめ
演算子は多くの種類がありますが、なかには使う機会が少ないものもあります。これらは見なくても次のステップへ進めます。
一方で、いざという時に知っていればプログラムをスマートに書くことができます。便利に使いこなすことができれば、Python 中級者へ一歩前進できると思います。
Python で使える演算子は 5 つに分けて考えると分かりやすいです。
| 演算子の名前 | できること | 使える演算子 |
| -------------- | ------------------ | -------------------------------------------------------- | ---------------------- |
| ① 代数演算子 | 四則演算の処理 | +
, -
, *
, /
,//
, %
, **
|
| ② 比較演算子 | 値を比べる時の処理 | ==
, !=
, >
, <
, >=
, <=
|
| ③ 論理演算子 | 論理計算の処理 | and
, or
, not
|
| ④ ビット演算子 | ビット処理 | ~
, &
, |
, ^
, >>
, <<
|
| ⑤ 代入演算子 | 代入する時の処理 | =
, +=
, -=
, *=
, /=
, %=
, **=
, //=
, &=
, | =
, ^=
, <<=
, >>=
|
それぞれ解説していきます。
① 代数演算子
Python では、足し算、引き算、掛け算、割り算、累乗を以下のように書きます。
結果は数字で返ってきます。
a + b # 足し算
a - b # 引き算
a * b # 掛け算
a / b # 割り算
a % b # 割り算(aをbで割った余り)
a // b # 割り算(切り捨て)
a ** b # a の b 乗
代数演算子の使い方
print(1 + 1) #足し算
2
print(5 - 4) #引き算
1
print(3 * 4) #掛け算
12
print(4 / 3) #割り算
1.33333333
print(4 % 3) #割り算(余り)
1
print(7 // 3) #割り算(切り捨て)
2
print(4 ** 2) #累乗
16
② 比較演算子
数値の大小を比べるときに使う演算子です。
結果は True
か False
で帰ってきます。
a == b # 等しい
a != b # 異なる
a < b # a は b より小さい
a > b # a は b より大きい
a <= b # a は b 以下
a >= b # a は b 以上
a is b # a と b は同じメモリ
a is not b # a と b は異なるメモリ
a in b # a は b の中に含まれる
a not in b # a は b の中に含まれない
==演算子の使い方、 !=演算子の使い方
a = 6
b = 6
c = 7
print(a == b)
print(a == c)
print(a != b)
print(a != c)
True
False
False
True
>演算子の使い方、 <演算子の使い方
print(5 > 3) #より大きい
print(5 < 3) #より小さい
True
False
>=演算子の使い方、 <=演算子の使い方
print(5 >= 5) #より大きい
print(4 <= 5) #より小さい
True
False
is 演算子の使い方、 is not 演算子の使い方
a = [1, 2, 3] # a と b に入っている数値は同じ
b = [1, 2, 3]
print(id(a)) # でもIDは違う(メモリが違うってこと)
print(id(b))
print(a == b) # == を使うとTrueになるが、
print(a is b) # is を使うとFalseになる
print(a is not b) # is not はその逆の結果
140431155838720
140431155836880
True
False
True
in 演算子の使い方、 not in 演算子の使い方
a = 3
b = 4
c = [1, 2, 3]
print(a in c) # cの中にaが含まれているか?
print(b in c) # cの中にbが含まれているか?
print(a not in c) # 反対の結果
print(b not in c) # 反対の結果
True
False
False
True
③ 論理演算子
論理計算ができる演算子です。
結果は True か False で返ってきます。
a and b # a も b もTrueであればTrueを返す
a or b # a または b がTrueであればTrueを返す
not a # a がTrueであればFalse、FalseであればTrueを返す
and 演算子の使い方
print(True and True)
print(True and False)
print(False and True)
print(False and False)
True
False
False
False
a | b | result |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
or 演算子の使い方
print(True or True)
print(True or False)
print(False or True)
print(False or False)
True
True
True
False
a | b | result |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
not 演算子の使い方
print(not True)
print(not False)
False
True
result | |
---|---|
True | False |
False | True |
④ ビット演算子
値をビットとして扱うことができる演算子です。
この演算子を使うときは、値を 2 進数もしくは 16 進数で考えた方が分かりやすいです。
結果は数値で返ってきます。
~a # ビット反転
a & b # a と b の AND (論理積)
a | b # a と b の OR (論理和)
a ^ b # a と b の XOR (排他的論理和)
a << b # a を b ビット分、左へシフト
a >> b # a を b ビット分、右へシフト
ビット反転
a = 2
print(a)
print(~a) #ビット反転(値に+1されて符号が逆になる)
print(bin(a)) #2進数で表記すると
print(bin(~a)) #2進数で表記すると
2
-3
0b10
-0b11
&演算子の使い方
#値は2進数で考える
a = 7 # 0b0111
b = 14 # 0b1110
#各ビットを見て、どちらも1の場合のみ、結果も1となる(それ以外は0)
print(a & b) # 0b0110
6
|演算子の使い方
#値は2進数で考える
a = 7 # 0b0111
b = 14 # 0b1110
#各ビットを見て、どちらも0の場合のみ、結果も0となる(それ以外は1)
print(a | b) # 0b1111
15
^演算子の使い方
#値は2進数で考える
a = 7 # 0b0111
b = 14 # 0b1110
#各ビットを見て、値が異なる場合のみ、結果が1となる(それ以外は0)
print(a ^ b) # 0b1001
9
<<演算子の使い方
#値は2進数で考える
a = 14 # 0b01110
print(a<<1) # 0b11100 (倍になる)
28
>>演算子の使い方
#値は2進数で考える
a = 14 # 0b01110
print(a>>1)# 0b00111 (半分になる)
7
補足:2 進数表記の確認の方法
#2進数はbin()関数で確認できる
a = 7 # 0b0111
b = 14 # 0b1110
print(a, bin(a))
print(b, bin(b))
7 0b111
14 0b1110
⑤ 代入演算子
値を変数に代入する時の処理ができる演算子です。
省略して書くことができて便利です。
結果は数値や True/False で返ってきます。
a = b # a に b を代入する
a += b # a = a + b と同じ処理
a -= b # a = a - b と同じ処理
a *= b # a = a * b と同じ処理
a /= b # a = a / b と同じ処理
a %= b # a = a % b と同じ処理
a **= b # a = a ** b と同じ処理
a //= b # a = a // b と同じ処理
a &= b # a = a & b と同じ処理
a |= b # a = a | b と同じ処理
a ^= b # a = a ^ b と同じ処理
a <<= b # a = a << b と同じ処理
a >>= b # a = a >> b と同じ処理
=演算子の使い方
a = 1
print(a)
1
+=演算子の使い方
a = 2
a += 3 # a = a + 3と同じ
print(a)
5
-=演算子の使い方
a = 2
a -= 3 # a = a - 3と同じ
print(a)
-1
\*=演算子の使い方
a = 2
a *= 3 # a = a * 3と同じ
print(a)
6
/=演算子の使い方
a = 2
a /= 3 # a = a / 3と同じ
print(a)
0.6666666666666
%=演算子の使い方
a = 2
a %= 3 # a = a % 3と同じ
print(a)
2
\*\*=演算子の使い方
a = 2
a **= 3 # a = a ** 3と同じ
print(a)
8
//=演算子の使い方
a = 2
a //= 3 # a = a // 3と同じ
print(a)
0
&=演算子の使い方
a = 14
a &= 7 # a = a & 7と同じ
print(a)
6
|=演算子の使い方
a = 14
a |= 7 # a = a | 7と同じ
print(a)
15
^=演算子の使い方
a = 14
a ^= 7 # a = a ^ 7と同じ
print(a)
9
<<=演算子の使い方
a = 14
a <<= 1 # a = a << 1と同じ
print(a)
28
>>=演算子の使い方
a = 14
a >>= 1 # a = a >> 1と同じ
print(a)
7
もし使い方を忘れたときは、今回の内容を見返してみてください。
Python の基礎を本にまとめています。併せてご覧いただけるととても嬉しいです ↓
機械学習をもっと詳しく
ねこアレルギーの AI
YouTube で機械学習について発信しています。お時間ある方は覗いていただけると喜びます。
Created by NekoAllergy
Discussion
代数演算子は、誤訳が広がったものと考えられます。
一般的には、算術演算子です。
以下の記事が参考になります。
Qiita: + - * / は代数演算子,じゃない
なお、PHPの公式マニュアルは2021年末に修正されました。
php doc-ja: arithmeticの訳を「算術」にする #30