
どれかの条件に当てはまれば「True」となる「or」と、すべての条件に当てはまるとき「True」となる「and」について学ぶよ!
「orとand」のことは、「論理演算子」って言うんだ!

テストの点数によって、クラス分けをするプログラムを作りながら教えていくね!

使い方の例

最初に、どんなプログラムを作ればいいのか、しっかり整理しておくよ!
こうすることを「要件定義」っていうんだけど、大切なことなので覚えておいてね!

⌨️プログラムの要件
・キーボードからテストの点数を入力する。
・入力された数値をチェックし、「0より小さい」または「100より大きい」なら、「入力エラー」と表示する。
・入力された数値が正常なら、点数によってクラス分けをする。
・80点以上なら、「進学クラス」と表示する。
・80点より低くて、30点以上なら「普通クラス」と表示する。
・30点より低いなら、「特別クラス」と表示する。


最初に、キーボードからの入力と、入力チェックのプログラムを考えよう!
まず、キーボードから数値が入力されたら、整数に変換して変数「score」に代入するよ!


それから、変数「score」の値が「score < 0(0より小さい)」か「score > 100(100より大きい)」かを判断すればいいね!
このとき、2つの条件のうちどちらか一方が成立すれば「True」と判断したいようなときには、「or」というのを使うんだ!
「or」というのは、「条件Aまたは条件B」のどちらか一方に当てはまるなら「True」という意味だよ!



ここまで考えたことを、実際にコードにするとこうなるよ!
0より小さい数値か、100より大きい数値を入力すると、「入力エラー」と表示するよ!
#キーボードから2つの数値を入力する。
score = int(input())
#入力された数値が、「0より小さい」かまたは「100より大きい」
if score < 0 or score > 100:
print("入力エラー")
else: #正常値なら
print("正常値")

次に、入力された数値が正常値だったなら、点数によってクラス分けをするプログラムを考えていこう!
「進学クラス」は、80点から100点の間だから、scoreの値が「80点以上で、なおかつ100点以下」なら「True」になるということだよね!


こういった、2つの条件のどちらにも当てはまるとき「True」と判断したいときには、「and」を使うよ!
「and」は、「条件Aかつ条件B」なら「True」という意味だよ!

そして、scoreの値が「30点以上で80点より低い」という2つの条件に当てはまるなら「普通クラス」と判断できる!



さらに、scoreの値が「0点以上で30点より低い」という2つの条件に当てはまるなら「特別クラス」と判断できる!

この条件判断を、さっきのコードの「正常値」のところに追加すればプログラムの完成だよ!

#キーボードから1つの数値を入力する。
score = int(input())
#入力された数値が、「0より小さい」かまたは「100より大きい」
if score < 0 or score > 100:
print("入力エラー")
else: #正常値なら
if score >= 80 and score <= 100:
print("進学クラス")
elif score >= 30 and score < 80:
print("普通クラス")
elif score >= 0 and score < 30:
print("特別クラス")

ある数値を境にしてどちらに当てはまるかを判断するときには、その数値を含むか含まないのか、要件をしっかり確認するようにしてね!
そして、正しく仕分けできているか、ちゃんとテストして確認するようにしてね!


やってみよう
⌨️1
論理演算の「or」と「and」を、理解しましょう。


「a = True」「b = False」としたとき、「a or b」のときと「a and b」のときでは、 どんな結果が出力されるか確かめてください。
a = True
b = False
print(a or b)
print(a and b)
📖 解答例と解説
True False

「a or b」の場合、「どっちかがTrueなら、True」になるので、「a」が「True」なので結果は「True」になるよ!
でも、「a and b」の場合では、「どっちもTrueなら、True」なので「b」が「False」だから結果は「False」だね!

⌨️2
「or」と「and」を組み合わせて、以下の複雑な条件判断をするプログラムを作ってください。
プログラムの要件
・「x」と「y」の2つの数値をキーボードから入力する。
・「xとyはどちらも偶数である」または「xとyはどちらも3の倍数である」なら「True」と表示する。
・そうでないなら、「False」と表示する。

ややこしい条件判断だから、一つずつ考えていくといいよ!
まず、「xとyはどちらも偶数である」はどうなるかな?



それじゃ、「xとyはどちらも3の倍数である」はどうなるかな?

この2つの条件を「または」で判断するということは、どちらか一方が成立すればいいわけだから、使うのはあれだね!


これで条件式はできると思うから、プログラムを完成させてね!
📖 解答例と解説
x = int(input()) y = int(input()) if (x % 2 == 0 and y % 2 == 0) or (x % 3 == 0 and y % 3 == 0): print("True") else: print("False")

結果が「True」になるのは、2つとも偶数か、2つとも3の倍数のときだね!
何度も実行して、正しく判定できているか必ず確かめるようにしてね!

⌨️3
遊園地で、「絶叫マシン」に乗るときの条件判断をするプログラムを作ってください。
プログラムの要件
・「年齢」と「身長」の2つの数値をキーボードから入力する。
・「年齢」が「12歳以下でない」なら乗ることができる。
・「身長」が「120cm以下でない」なら乗ることができる。
・2つの条件のどちらにも当てはまるなら乗ることができる。

「年齢」が「12歳以下でない」という条件判断をするときには、「not( )」を使うといいよ!
「not( )」は、中の条件を否定するという意味なので、「not(12歳以下)」は「12歳以上」という判断になるんだよ!

これで、プログラムを考えて完成させてね!

📖 解答例と解説
age = int(input()) height = int(input()) if not(age <= 12) and not(height <= 120): print("乗ることができる") else: print("乗ることができない")
「2つの条件のどちらにも当てはまる」なら乗ることができるんだから、2つの条件の間には「and」が入るよ!


「or」「and」「not( )」を使って、複雑な条件判断をする方法はどうだった?
難しかったかもしれないけど、大人でも間違っちゃうときもよくあるから、よーく考えるようにしてね!

- 2つの条件のどちらか一方に当てはまればいいときには、「or」を使う。
- 2つの条件のどちらにも当てはまらないといけないときには、「and」を使う。
- 〇〇ではないという条件判断をするときには、「not( )」を使う。