今回はif文で使わせる様々な演算子について説明していきます。
まず、if文とは条件を設けるときに使用されるものです。
簡単な例を表すと
num1 = 10
if num1 >= 10:
print("10以上です。")
else:
print("10未満です。")
これを実行してみると
10以上です。
となります。
ifで10以上であるか判断してelseではそれ以外のものをすべて指しています。
if文は条件の部分である「if 条件」の最後に「:」が必要です。
if文の条件には以下のようなものがあります。
比較演算子
符合 | 説明 |
== | 等しい |
> | 大なり |
< | 小なり |
>= | 以上 |
<= | 以下 |
!= | 等しくない |
これを使って実際にプログラムを組んでみます。
下のプログラムは入力した値がどれに合っているか評価するプログラムになっています。
num1 = int(input())
if num1 == 10:
print("等しい")
if num1 > 10:
print("大なり")
if num1 < 10:
print("小なり")
if num1 >= 10:
print("以上")
if num1 <= 10:
print("以下")
if num1 != 10:
print("等しくない")
これを実行し、1,10,15を入力すると
1
小なり
以下
等しくない
10
等しい
以上
以下
15
大なり
以上
等しくない
このように1を入力した場合は10より少ない10より小さい、10以下、10でない三つの評価が出てきました。同様に10と15の適した評価が出てきています。
論理演算子
次に、複数条件に対して評価をするための方法を以下に示します。
符合 | 説明 |
or | いずれかがが条件を満たせば真 |
and | 全て条件を満たせば真 |
not | 条件を満たさなければ真 |
まず、orは複数の条件に対してどれかを満たしていれば真となります。
num1 = int(input())
num2 = int(input())
if num1 > 10 or num2 > 20:
print("真")
else:
print("偽")
このプログラムを用いて入力した二つの値に対して真か偽のどちらかを判断してもらいます。
15
30
真
15
10
真
5
2
偽
まず、num1に15、num2に30を入力します。
すると、真と結果が出てきました。
これは、num1が10より大きく、num2が20より大きく、orの条件であるどちらかの条件を満たしているので真という結果が得られました。
次にandは複数の条件に対して全て満たしていれば真となります。
num1 = int(input())
num2 = int(input())
if num1 > 10 and num2 > 20:
print("真")
else:
print("偽")
これを実行し、二つの値を入力すると
15
30
真
15
10
偽
5
2
偽
15と10を入力した場合を見ると、num1は10より大きいので真ですが、num2が20以下であるため二つの条件を見てしていないため偽となります。
このようにandでは条件の全てを満たさないと真になりません。
次にnotは条件に対して偽となるものを真と判断します。
プログラムとしては
num1 = int(input())
if not num1 > 10:
print("10以上でない")
else:
print("10以上である")
これを実行すると
15
10以上である
5
10以上でない
ifの行を見ると、notは条件が反転するので15は10より大きいですがnotがついているのでnum1が10より大きいときに偽となり、10より小さいときに真となるため、15は偽となります。
算術演算子
次にif文に演算を用いて条件を設定し、評価する方法を示します。
符合 | 説明 |
+ | 足し算 |
– | 引き算 |
* | 掛け算 |
/ | 割り算 |
// | 割り算(整数部分のみ) |
% | 割り算(あまり) |
** | べき乗 |
今回は足し算を使って二つの値の合計が10以上であるかどうかを判断してもらうプログラムを作ってもらいます。
num1 = int(input())
num2 = int(input())
if num1 + num2 >=10:
print("合計は10以上です")
else:
print("合計は10以下です")
これを実行すると
7
8
合計は10以上です
4
5
合計は10以下です
このようにif文の中で計算された値によって判断されていることがわかります。
ビット演算子
次に加算器などで使われる論理演算について説明していきます。
pythonでは論理演算に使用される演算子をビット演算子といいます。
ビット演算子は整数の計算を行うときに使用されます。
符合 | 説明 |
& | AND(論理積) |
` | OR(論理和) |
^ | XOR(排他的論理和) |
~ | NOT(否定) |
今回は二つの値がどちらも偶数か、どちらも奇数か、一方が偶数で一方が奇数か評価するプログラムを作成します。
num1 = int(input())
num2 = int(input())
if (num1 & 1) == 0 and (num2 & 1) == 0:
print("両方とも偶数です")
elif (num1 & 1) == 1 and (num2 & 1) == 1:
print("両方とも奇数です")
else:
print("一方が偶数で一方が奇数です")
まず、偶数を判定するためにnum1と1の積を取ります。このときnum1の最小ビットと1の積が0になれば偶数となります。最小ビットが1であれば1×1=1となり、最小ビットが0であれば0×1=0となります。整数の特性として、1=1(二進数),2=10(二進数),3=11(二進数),4=100(二進数),5=101(二進数)このように奇数であれば最小ビットが1、偶数であれば0となります。これを使って二つの値が偶数か奇数か判断されます。
実行してみると
10
6
両方とも偶数です
3
27
両方とも奇数です
1
4
一方が偶数で一方が奇数です
このようにビット演算子では複数の整数値に対して論理演算の計算を行わせることができます。
コメント