はじめに
前回の記事では、print()関数、変数、type()について学びました。前回の授業の振り返りが必要な方は、以下の記事をご覧ください!
今回は、演算子について学んでみましょう!
演算子の種類
Pythonには、算術演算子、比較演算子、論理演算子の3種類の演算子があります。これから、各演算子について詳しく説明します。
算術演算子
算術演算子の種類は次のとおりです。
記号 | 意味 |
+ | 2つの数値を足し算します。例えば、x + y は、xとyの数値を足し算します。 |
– | 1つの数値から別の数値を引き算します。例えば、x - y は、xからyを引き算します。 |
* | 2つの数値を掛け算します。例えば、x * y は、xとyを掛け算します。 |
/ | 1つの数値をもう1つの数値で割り算します。例えば、x / y は、xをyで割り算します。 |
% | 1つの数値をもう1つの数値で割った余りを求めます。例えば、x % y は、xをyで割った余りを求めます。 |
次に、上記の算術演算子について詳しく説明します。
+とは
「+」は、2つの数値を足し算するために使います。また、文字列を連結する際にも使用できます。では、2つの数値を足し算して表示するソースコードを実際に書いてみましょう!
num1 = 10
num2 = 20
print(num1 + num2) #出力:30
上述のコードの場合、変数 num1 に10が保存され、変数 num2 に20が保存されます。これらの変数に保存されている値を足し合わせて、print() 関数を通じて表示させます。結果として、30が表示されます。
注意点として、「+」は2つの数値を表現していますが、実際には2つの変数の中身を足し算すると理解しても大丈夫です。前回の記事では、変数には整数型、浮動小数点型、文字列型、ブール型を保存できることを話しました。ここでは、文字列型を変数に保存して「+」の連結操作を見てみましょう。
sentence_one = "Hello "
sentence_two = "Wolrd"
print( sentence_one + sentence_two) #出力:Hello World
上述のコードでは、変数 sentence_one に「Hello」が、変数 sentence_two に「World」が保存されます。これらの変数を連結し、print() 関数を通じて「Hello World」と表示します。
なお、「+」を使って数値と文字列を混合するとエラーが発生します。例えば、次のようなコードはエラーとなります。
num = 10
text = " apples"
print(num + text) # エラー:TypeError: unsupported operand type(s) for +: 'int' and 'str'
このエラーを回避するためには、数値を文字列に変換する必要があります。以下のコードのように、str() 関数を使って数値を文字列に変換してから連結します。
num = 10
text = " apples"
print(str(num) + text) # 出力:10 apples
このようにして、数値と文字列を連結することができます。
-とは
「-」は、1つの数値から別の数値を引き算するために使います。では、ソースコードを実際に書いてみましょう!
num1 = 30
num2 = 10
print(num1 - num2) # 出力:20
上記のコードでは、num1 に30、num2 に10が保存されています。num1 – num2 は30から10を引き算し、結果は20となります。
また、「-」は負の数を現すためにも使えます。
num = -10
print(num) # 出力:-10
上記のコードのように、「-」を使うことで、-10を表示させることができます。
*とは
「*」は、2つの数値を掛け算するために使います。では、ソースコードを実際に書いてみましょう!
num1 = 5
num2 = 4
print(num1 * num2) # 出力:20
上記のコードでは、num1 に5、num2 に4が保存されています。num1 * num2 は5と4を掛け算し、結果は20となります。
また、「*」は文字列を繰り返すためにも使うことができます。
text = "Hello"
print(text * 3) # 出力:HelloHelloHello
上記のコードでは、text に「Hello」が保存されています。text * 3 は「Hello」を3回繰り返し、結果は「HelloHelloHello」となります。
/とは
「/」は、1つの数値をもう1つの数値で割り算するために使います。では、ソースコードを実際に書いてみましょう!
num1 = 20
num2 = 4
print(num1 / num2) # 出力:5.0
上記のコードでは、num1 に20、num2 に4が保存されています。num1 / num2 は20を4で割り算し、結果は5.0となります。
また、割り算で注意しなければならないのは、0で割ることです。0で割るとエラーが発生します。以下の例を見てみましょう。
num1 = 10
num2 = 0
print(num1 / num2) # ゼロ除算エラー:ZeroDivisionError: division by zero
このコードを実行すると、ZeroDivisionError
が発生し、プログラムはエラーで停止します。0で割る操作は無効であるため、事前に割り算する値が0でないことを確認する必要があります。
num1 = 10
num2 = 0
if num2 != 0:
print(num1 / num2)
else:
print("0で割ることはできません")
このように、割り算を行う前にチェックを入れることで、エラーを防ぐことができます。また、if文に関して学んでないですが、条件分岐であることだけ覚えましょう。一応このようなコードで割り算を行う前に確認できます。
また、整数部分のみが必要な場合は「//」を使用することで、整数部分だけ結果を得ることもできます。
%とは
「%」は、1つの数値をもう1つの数値で割った余りを求めるために使います。では、ソースコードを実際に書いてみましょう!
num1 = 10
num2 = 3
print(num1 % num2) # 出力:1
上記のコードでは、num1 に10、num2 に3が保存されています。num1 % num2 は10を3で割った余りを求め、結果は1となります。
次に、Pythonの比較演算子についても見てみましょう。
比較演算子
比較演算子は、2つの値を比較するために使います。結果はブール値(True または False)となります。比較演算子の種類は次のとおりです。
記号 | 意味 |
== | 2つの値が等しいかどうかを比較します。 |
!= | 2つの値が等しくないかどうかを比較します。 |
> | 左側の値が右側の値より大きいかを比較します。 |
< | 左側の値が右側の値より小さいかを比較します。 |
>= | 左側の値が右側の値以上かを比較します。 |
<= | 左側の値が右側の値以下かを比較します。 |
==とは
== 演算子は、2つの値が等しいかどうかを比較します。等しい場合は True、そうでない場合は False となります。例えば、下記のようなコードです!
x = 10
y = 10
print(x == y) # 出力:True
a = 5
b = 10
print(a == b) # 出力:False
!= とは
!= 演算子は、2つの値が等しくないかどうかを比較します。等しくない場合は True、そうでない場合は False となります。
x = 10
y = 5
print(x != y) # 出力:True
a = 7
b = 7
print(a != b) # 出力:False
>とは
演算子は、左側の値が右側の値より大きいかどうかを比較します。左側の値が大きい場合は True、そうでない場合は False となります。
x = 15
y = 10
print(x > y) # 出力:True
a = 3
b = 8
print(a > b) # 出力:False
<とは
<
演算子は、左側の値が右側の値より小さいかどうかを比較します。左側の値が小さい場合は True
、そうでない場合は False
となります。
x = 5
y = 10
print(x < y) # 出力:True
a = 10
b = 3
print(a < b) # 出力:False
>=とは
>=演算子は、左側の値が右側の値以上かどうかを比較します。左側の値が右側の値以上である場合はTrue、そうでない場合はFalseとなります。
x = 10
y = 10
print(x >= y) # 出力:True
a = 7
b = 10
print(a >= b) # 出力:False
<=とは
<= 演算子は、左側の値が右側の値以下かどうかを比較します。左側の値が右側の値以下である場合は True、そうでない場合は False となります。
x = 10
y = 15
print(x <= y) # 出力:True
a = 10
b = 10
print(a <= b) # 出力:True
c = 20
d = 5
print(c <= d) # 出力:False
また、比較演算子は、数値だけでなく、文字列やその他のデータ型にも適用できます。たとえば、文字列の比較では辞書順での大小比較が行われます。
str1 = "apple"
str2 = "banana"
print(str1 < str2) # 出力:True(辞書順で "apple" は "banana" より前)
次に、Pythonの論理演算子についても見てみましょう。
論理演算子
論理演算子の種類は次のとおりです。
記号 | 意味 |
and | 両方の条件が True の場合にのみ True を返します。 |
or | どちらか一方の条件が True であれば True を返します。 |
not | 条件の真偽を反転させます。条件が True であれば False を、条件が False であれば True を返します。 |
andとは
and 演算子は、両方の条件が True の場合にのみ True を返します。どちらか一方でも False であれば False を返します。つまり、次のようなルールです。
値1 | 値2 | 結果 |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
x = 5
y = 10
z = 15
print(x < y and y < z) # 出力:True
print(x > y and y < z) # 出力:False
上記のコードのように「print(x < y and y < z)」では 「x < y」は「5 < 10」なので、「True」を返し、「 y < z」は「10 < 15」なので、「True」を返して、「True and True」は「True」を返すことになります。
また、「print(x > y and y < z)」では 「x > y」は「5 > 10」なので、「False」を返し、「 y < z」は「10 < 15」なので、「True」を返して、「False and True」は「False」を返すことになります。
or とは
or 演算子は、どちらか一方の条件が True であれば True を返します。両方の条件が False の場合にのみ False を返します。つまり、次のようなルールです。
値1 | 値2 | 結果 |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
x = 5
y = 10
z = 15
print(x < y or y > z) # 出力:True
print(x > y or y > z) # 出力:False
上記のコードのように、「print(x < y or y > z)」では、「x < y」は「5 < 10」なので「True」を返し、「y > z」は「10 > 15」なので「False」を返します。したがって、「True or False」は「True」を返すことになります。
また、「print(x > y or y > z)」では、「x > y」は「5 > 10」なので「False」を返し、「y > z」は「10 > 15」なので「False」を返します。したがって、「False or False」は「False」を返すことになります。
not とは
not 演算子は、条件の真偽を反転させます。条件が True であれば False を、条件が False であれば True を返します。つまり、次のようなルールです。
値 | 結果 |
True | False |
False | True |
x = 5
print(not x > 10) # 出力:True
print(not x < 10) # 出力:False
上記のコードのように、「print(not x > 10)」では、「x > 10」は「5 > 10」なので「False」を返し、それを反転させて「True」を返します。
また、「print(not x < 10)」では、「x < 10」は「5 < 10」なので「True」を返し、それを反転させて「False」を返します。
まとめ
今回の記事でのまとめとしては、次のようになります。
算術演算子
記号 | 意味 |
+ | 2つの数値を足し算します。例えば、x + y は、xとyの数値を足し算します。 |
– | 1つの数値から別の数値を引き算します。例えば、x - y は、xからyを引き算します。 |
* | 2つの数値を掛け算します。例えば、x * y は、xとyを掛け算します。 |
/ | 1つの数値をもう1つの数値で割り算します。例えば、x / y は、xをyで割り算します。 |
% | 1つの数値をもう1つの数値で割った余りを求めます。例えば、x % y は、xをyで割った余りを求めます。 |
比較演算子
記号 | 意味 |
== | 2つの値が等しいかどうかを比較します。 |
!= | 2つの値が等しくないかどうかを比較します。 |
> | 左側の値が右側の値より大きいかを比較します。 |
< | 左側の値が右側の値より小さいかを比較します。 |
>= | 左側の値が右側の値以上かを比較します。 |
<= | 左側の値が右側の値以下かを比較します。 |
論理演算子
記号 | 意味 |
and | 両方の条件が True の場合にのみ True を返します。 |
or | どちらか一方の条件が True であれば True を返します。 |
not | 条件の真偽を反転させます。条件が True であれば False を、条件が False であれば True を返します。 |
上記のように、今回の記事では、演算子に関して学びました。
次回の記事では、条件分岐や今回の記事で触れなかったprint()の詳細に関して触れていきたいと思います!ご覧いただき誠にありがとうございます!