Python基礎として、「論理演算」や「反復」というものがあります。
Pythonを使用する上で、欠かせない必須項目の1つです。
本記事では、そんなPython基礎となる論理演算と反復について、具体例を挙げながら詳しくご説明します。
論理演算
論理演算とは、複数の比較演算子を組み合わせた記述のことです。
Pythonで使用できる3種類の論理演算子は、以下のとおりです。
- and 演算子
- or 演算子
- not 演算子
順番にご説明します。
and 演算子
and 演算子は、指定された値が両方ともTrueの場合、Trueを返す演算子です。
一方で、いずれかがFalseであれば、Falseを返します。
andのように、入力がTrueのときのみ、結果がTrueになる論理演算を論理積と言います。
具体例を以下に載せます。
#input
A=70
B=45
if (40 <= A) and (40 <= B):
print("合格")
else:
print("不合格")
#output
合格
上例のように、AとBが両方とも40以上(True)の場合、「合格」(True)になります。
一方でBが40未満(False)の場合、以下のようにFalseとなります。
#input
A=70
B=35
if (40 <= A) and (40 <= B):
print("合格")
else:
print("不合格")
#output
不合格
or 演算子
or 演算子は、指定された値のどちらか一方、あるいは両方がTrueの場合、Trueを返す演算子です。
一方で、両方がFalseであれば、Falseを返します。
orのように、入力がTrueのときのみ、結果がTrueになる論理演算を論理和と言います。
以下に例を載せます。
#input
A=70
B=45
if (40 > A) or (40 > B):
print("不合格")
else:
print("合格")
#output
合格
AとBが両方とも40以上(False)の場合、「合格」(False)になります。
一方でBが40未満(True)の場合、以下のようにTrueとなります。
#input
A=70
B=35
if (40 > A) or (40 > B):
print("不合格")
else:
print("合格")
#output
不合格
not 演算子
not 演算子は、指定された値を反転し、値がTrueの場合、Falseを返し、Falseの場合、Trueを返す演算子です。
notのように、入力値を反転した値が返される論理演算を、否定とも言います。
具体例を以下に載せます。
#input
A=70
if not (40 > A):
print("合格")
else:
print("不合格")
#output
合格
Aが40以上(False)の場合、「合格」(True)になります。
一方でAが40未満(True)の場合、以下のようにFalseとなります。
#input
A=20
if not (40 > A):
print("合格")
else:
print("不合格")
#output
不合格
反復
反復(ループ)は、決まった条件が満たされている間は、同じことを繰り返す(ループする)という処理です。
Pythonで使用する文ごとに、以下ご説明します。
while文
Pythonでの反復処理の記述は、while文で行います。
while文は、決められた条件式が満たされている間(結果がTrueである間)は、処理を繰り返します。
以下に例を載せます。
#input
number = ""
while number != "100":
number = input("input number:")
print(number,"is not 100!")
print("Number is correct.")
input number:50
#output
50 is not 100!
input number:75
#output
75 is not 100!
input number:100
#output
Number is correct.
上のプログラムは、入力値が「100」でない間(結果がTrueである間)、ループする反復プログラムです。
「100」を入力する(結果がFalseになる)ことで、終了する処理になっています。
break文
上記ご説明したwhile文の終了条件は、結果がFalseになることでした。
つまり、Falseになるまで、永遠にループし続ける処理になっています。
そこで、ループの途中で抜け出すために使用するのがbreak文です。
たとえば、以下のプログラムについて、考えてみます。
#input
i = 1
while i <=3:
text = input("input number:")
number = int(text)
print(i,"回目(あと",3-i,"回):",number*number)
i = i + 1
print("終了")
input number:1
#output
1 回目(あと 2 回): 1
input number:2
#output
2 回目(あと 1 回): 4
input number:3
#output
3 回目(あと 0 回): 9
終了
変数iが3になるまで、入力値の2乗を出力するというプログラムです。
変数に1を加える「i = i + 1」を忘れると、無限ループしてしまいますので、注意しましょう。
上記プログラムについて、break文を使用してみます。
#input
i = 1
while i <=3:
text = input("input number:")
if text >= "30":
print("中断")
break
number = int(text)
print(i,"回目(あと",3-i,"回):",number*number)
i = i + 1
print("終了")
input number:10
#output
1 回目(あと 2 回): 100
input number:20
#output
2 回目(あと 1 回): 400
input number:30
#output
中断
終了
入力した文字列が30以上であれば、break文を実行するプログラムです。
ループが中断したことにより、while文から脱出して、print(“終了”)も実行されます。
continue文
break文は、ループを途中で中断する処理でした。
ループを中断するのではなく、最初からやり直したい場合に使用するのが、continue文です。
以下の例について、ご説明します。
#input
i = 0
while i <= 25:
i = i + 1
if (i % 5) != 0:
continue
print(i, "is a multiple of 5.")
#output
5 is a multiple of 5.
10 is a multiple of 5.
15 is a multiple of 5.
20 is a multiple of 5.
25 is a multiple of 5.
i = 0から1ずつ増加していき、continue文によって、iが5の倍数でない場合にはループの先頭に戻るようなプログラムになっています。
結果として、5の倍数のみ出力されていることがわかるかと思います。
まとめ
この記事では、Python基礎となる論理演算と反復について、ご説明しました。
本記事の具体例を参考に、トライいただければ幸いです。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!