演算子とは
演算子とは、主に2つ以上の値を計算や比較などを行うための記号です。
プログラムの中では主に変数への加算などの算術演算子やif文の条件式の比較を行う比較演算子がよく使われます。
なお、演算子には優先順位があります。優先順位については「Pythonの演算子の優先順位」をご参照ください。
算術演算子
算術演算子は、変数や数値に対して加算や減算などを行います。
演算子 | 利用例 | 内容 |
---|---|---|
+ | x + y | x に y を足す |
– | x – y | x から y を引く |
* | x * y | x に y を掛ける |
/ | x / y | x を y で割る |
// | x // y | x を y で割り、余りを切り捨てる |
% | x % y | x を y で割った余り |
** | x ** y | xのy乗 |
代入演算子
代入演算子は、左辺の変数に対して、右辺を代入するために使用します。
演算子 | 利用例 | 内容 |
---|---|---|
= | x = y | x に y を代入する。 |
+= | x += y | x に y を加算した値をxに代入する。「x = x + y」と同じ意味。 |
-= | x -= y | x から y を減算した値をxに代入する。「x = x – y」と同じ意味。 |
*= | x *= y | x に y を掛けた値をxに代入する。「x = x * y」と同じ意味。 |
/= | x /= y | x を y で割った値をxに代入する。「x = x / y」と同じ意味。 |
%= | x %= y | x を y で割った余りをxに代入する。「x = x % y」と同じ意味。 |
**= | x **= y | x を y 乗した値をxに代入する。「x = x ** y」と同じ意味。 |
//= | x //= y | x を y で割った商をxに代入する。「x = x // y」と同じ意味。 |
&= | x &= y | x と y の論理積(x と y の各ビットのうち、x と y の両方でビットが1の場合に、そのビットが1になる)をxに代入する。「x = x & y」と同じ意味。 |
|= | x |= y | x と y の論理和(x と y の各ビットのうち、x と y のどちらかでビットが1の場合に、そのビットが1になる)をxに代入する。「x = x | y」と同じ意味。 |
^= | x ^= y | x と y の排他的論理和(x と y の各ビットのうち、x と y が1と0の組み合わせになっている場合に、そのビットが1になる)をxに代入する。「x = x ^ y」と同じ意味。 |
<<= | x << y | x を y ビット左にシフトした値を x に代入する。 |
>>= | x >> y | x を y ビット右にシフトした値を x に代入する。 |
比較演算子
比較演算子は、左右の値を比較した結果を返します。通常は条件文に利用されます。
比較した結果の通りであれば「真(True)」として扱われ、そうでなければ「偽(False)」として扱われます。
演算子 | 利用例 | 内容 |
---|---|---|
== | x == y | x と y が等しい場合に「真(True)」になる。 |
!= | x != y | x と y が異なる場合に「真(True)」になる。 |
<> | x <> y | x と y が異なる場合に「真(True)」になる。 |
> | x > y | x が y よりも大きい場合に「真(True)」になる。 |
< | x < y | x が y よりも小さい場合に「真(True)」になる。 |
>= | x >= y | x が y 以上の場合に「真(True)」になる。 |
<= | x <= y | x が y 以下の場合に「真(True)」になる。 |
is | x is y | x と y のオブジェクトが同じ場合に「真(True)」になる。 |
is not | x is not y | x と y のオブジェクトが異なる場合に「真(True)」になる。 |
in | x in y | x が y に含まれている場合に「真(True)」になる。 |
not in | x not in y | x が y に含まれていない場合に「真(True)」になる。 |
ブール演算子(論理演算子)
ブール演算子は、通常は2つの条件が同時に(and演算子)、または、どちらか(or演算子)が「真(True)」になるかを判定することに使います。必要があればnot演算子で真と偽を反転させます。
演算子 | 利用例 | 内容 |
---|---|---|
and | x and y | 条件x と条件y がどちらも「真(True)」になる場合に、「真(True)」になる。 |
or | x or y | 条件x か条件y のどちらかが「真(True)」になる場合に、「真(True)」になる。 |
not | not x | 条件x の真偽を反転させる。「真(True)」であれば「偽(False)」、「偽(False)」であれば「真(True)」になる。 |
ビット演算子
ビット演算子は、値の各ビット値の操作を行います。
演算子 | 利用例 | 内容 |
---|---|---|
~ | ~x | 各ビットを反転させる。 |
& | x & y | x と y の論理積(x と y の各ビットのうち、x と y の両方でビットが1の場合に、そのビットが1になる)を求める。 |
| | x | y | x と y の論理和(x と y の各ビットのうち、x と y のどちらかでビットが1の場合に、そのビットが1になる)を求める。 |
^ | x ^ y | x と y の排他的論理和(x と y の各ビットのうち、x と y が1と0の組み合わせになっている場合に、そのビットが1になる)を求める。 |
<< | x << y | x の yビット左にシフトする。 |
>> | x >> y | x の yビット右にシフトする。 |
文字列操作演算子
文字列操作演算子は、見た目は算術演算子と同じですが、利用する対象が文字列になります。
演算子 | 利用例 | 内容 |
---|---|---|
+ | x + y | 文字列の x と y を結合する。”123″ + “abc”は”123abc”になる。 |
* | x * y | 文字列 x を y 回数結合する。”123_” * 3は”123_123_123_”になる。 |
三項演算子
三項演算子は1行で書くif文のようなもので、conditions(条件式)が「真(True)」の場合は左端の式(x)が返され、「偽(False)」の場合はelseの右の式(y)が返されます。
可読性が落ちるため、一般的には使用しないことが多いです。
1 |
x if conditions else y |
利用例
1 |
1 if a == 1 else 2 |