使い方の例
2つのサイコロを振ったとき、どちらか一方が奇数だったなら「True」と判断するプログラムを考えるよ!
まずは、「乱数」でサイコロを作ろう!
サイコロだから、範囲は「1~6」だね!
それに、「サイコロA」と「サイコロB」の2つ分の整数値を「乱数」で作る必要があるよ!
サイコロができたら、「サイコロAが奇数かどうか」と「サイコロBが奇数かどうか」を、それぞれ「if文」で判断すればいいね!
そうすると、こんなプログラムになったよ!
import random
diceA = random.randint(1, 6)
diceB = random.randint(1, 6)
if diceA % 2 == 1:
print("サイコロAは", diceA, ":奇数")
else:
print("サイコロAは", diceA, ":偶数")
if diceB % 2 == 1:
print("サイコロBは", diceB, ":奇数")
else:
print("サイコロBは", diceB, ":偶数")
でも、これだと「どちらか一方が奇数なら、True」という判断ができていないよね!
フラグ変数を追加して、「サイコロA」と「サイコロB」が「奇数」か「偶数」かの状態を持たせるようにすればいいんだ!
サイコロが偶数だったら「False」、奇数だったら「True」になるようにすればできそうだね!
フラグ変数「result」を追加して、サイコロの目が奇数のときには「True」を代入するようにしたよ!
これで、「どちらかのサイコロが奇数」かどうか判断できるよ!
import random
diceA = random.randint(1, 6)
diceB = random.randint(1, 6)
result = False
if diceA % 2 == 1:
print("サイコロAは", diceA, ":奇数")
result = True
else:
print("サイコロAは", diceA, ":偶数")
if diceB % 2 == 1:
print("サイコロBは", diceB, ":奇数")
result = True
else:
print("サイコロBは", diceB, ":偶数")
if result == True:
print("どちらか一方が奇数")
else:
print("どちらも偶数")
「if文」が続いて、ちょっとややこしいプログラムになっちゃったね!
わかりにくいかもしれないけど、コードをしっかり確認して、がんばって理解してね!
やってみよう
⌨️1
朝食をちゃんと食べたかどうかを判定するプログラムを作ってください。
・朝食のメニューは、パンとご飯です。
・どちらか一方でも食べたら「True」と判断します。
・両方食べても「True」と判断します。
・でも、どちらも食べなかったら「False」と判断します。
・パンとご飯のどちらを食べたかは、乱数を使ってください。
・乱数が「0」なら「食べていない」、「1」なら「食べた」としてください。
📖 解答例と解説
import random
rice = random.randint(0, 1)
bread = random.randint(0, 1)
breakfast = False
if rice == 1:
print("朝食にご飯を食べた")
breakfast = True
else:
print("朝食にご飯を食べなかった")
if bread == 1:
print("朝食にパンを食べた")
breakfast = True
else:
print("朝食にパンを食べなかった")
if breakfast == True:
print("朝食をちゃんと食べた")
else:
print("朝食を食べなかった")
こんなふうに、生活の中の身近な状況をプログラムにしていくんだよ!
「宿題かお手伝いのどちらかを終えたら、ゲームができる」なんていうのも、どんなプログラムにできるか考えてみてね!
使い方の例
次は、「サイコロAが奇数のとき、さらにサイコロBも奇数」なら「True」と判断し、 「2つとも奇数」と表示するプログラムを考えるよ!
「サイコロAが奇数」で、なおかつ「サイコロBも奇数」と、条件が絞り込まれていくようなイメージだね!
こんなときのプログラムは、「if文」の中に「if文」を作るといいんだ!
こんなプログラムになるよ!
import random
diceA = random.randint(1, 6)
diceB = random.randint(1, 6)
if diceA % 2 == 1:
print("サイコロAは", diceA, ":奇数")
if diceB % 2 == 1:
print("サイコロBも", diceB, ":奇数")
print("2つとも奇数")
else:
print("サイコロBが", diceB, ":偶数")
else:
print("サイコロAは", diceA, ":偶数")
「サイコロA」と「サイコロB」のどちらも「奇数」のときだけ、「2つとも奇数」と表示されるのを確認してね!
いくつかの条件がすべて成立するならば「True」と判断したいときは、 「if文」の中に「if文」を作って、「ネスト(入れ子)」構造にすればいいんだよ!
やってみよう
⌨️1
「外で遊ぶ」か「家でゲームをする」かを判定するプログラムを作ってください
・学校が休みという条件のとき、天気が「雨」なら「家でゲームをする」そうでないなら「外で遊ぶ」と判断します。
・乱数で、「休校日:1」、「登校日:0」としてください。
・天気は、「晴れ:1」、「曇り:2」、「雨:3」としてください。
📖 解答例と解説
import random
school = random.randint(0, 1)
weather = random.randint(1, 3)
if school == 1:
print("学校が休み")
if weather == 3:
print("天気は雨")
print("家でゲームをする")
else:
print("天気は雨ではない")
print("外で遊ぶ")
else:
print("学校が登校日")
天気を判断する条件式は他の方法も考えられるから、解答例のとおりでなくても大丈夫だよ!
何度も実行して、正しく判定できているか必ず確かめるようにしてね!
条件判断が複雑になると、「if文」も複雑な構造になっていくよ!
次は、複雑な条件判断をするときに使う、「or」と「and」について学ぶよ!
- 生活の中にはどんな条件判断があるか考えると、プログラミングが上達する。