意思決定:ロボットの別れ道
if、elif、elseステートメントと比較演算子を学び、フローチャートを使ってPythonロボットに自分で考えさせる方法を教えます。
プログラマーのみなさん、おかえりなさい! 🚀
Pythonロボットは記憶力(変数)を手に入れましたが、まだ私たちの命令を言われた通りに実行するだけです。今日は、ロボットに 「自分で考えて判断させる」 方法を教えてあげましょう!
ゲームでは、プレイヤーが溶岩に触れたらゲームオーバーになり、ゴールにたどり着いたらクリアになりますよね。コンピューターはどうやってそれを判断しているのかな? その秘密は 「If/Else(もしも)の別れ道」 にあるんだ!
森の中の道しるべ#
ロボットが魔法の森を歩いていくと、道の別れ道(分岐点)にたどり着きました。そこには、次のような質問が書かれた看板が立っています:「コインを10枚以上持っていますか?」
graph TD
Start([ロボットが歩いてくる]) --> Decision{コイン >= 10?}
Decision -->|はい - True| PathA["魔法の剣を買う! ⚔️"]
Decision -->|いいえ - False| PathB["冒険を続ける... 🗺️"]
Pythonでは、この別れ道を if(もし〜なら)と else(そうでなければ)を使って書きます:
coins = 12
if coins >= 10:
print("魔法の剣を買う! ⚔️")
else:
print("森の冒険を続ける... 🗺️")pythonPythonで別れ道を書くときのルール#
ロボットに判断を教えるときは、3つの大切なルールがあります:
- 質問の式:比較の記号を使って質問を書きます(例:
>=は「以上」)。 - コロン
::質問の文の最後には、必ずコロンをつけます。これはロボットに「ここから別れ道のスタートだよ!」と教えているんだ。 - 字下げ(インデント - 4つのスペース):それぞれの道の中のコードは、スペースキーを4回(またはTabキーを1回)押して、右にずらします。これで、どの命令がどの道のものなのかをロボットが理解できるよ!
比較の記号(ロボットへの質問)#
質問をするとき、ロボットは以下の記号を使います:
>(より大きい)<(より小さい)==(同じ? 注意:質問するときはイコールを2つ書きます!1つのイコールは箱にモノを入れるときに使うよ!)!=(同じではない?)>=(以上)<=(以下)
3つ以上の道があるときは? (elif)#
もし、別の選択肢があるときはどうするのかな? 例えば:
- コインが10枚以上なら:魔法の剣を買う。
- コインが5枚以上なら:木の盾を買う。
- それ以外なら:冒険を続ける。
こういうときは、elif(else if の略で「そうでなくて、もし〜なら」)を使って道しるべを増やします:
coins = 6
if coins >= 10:
print("魔法の剣を買う! ⚔️")
elif coins >= 5:
print("木の盾を買う! 🛡️")
else:
print("冒険を続ける... 🗺️")pythonコイン coins が 6 枚のとき、ロボットは1つ目の道(剣)をチェックし(ちがう)、2つ目の道(盾)をチェックして(あたり!)、「木の盾を買う! 🛡️」 と答えてくれます。
自分でやってみよう! 🎮#
ゲームのスコアをチェックするコードを書いてみよう!
- 変数
scoreを作って、値を120にします。 - もし score が
100より大きければ、"ハイスコア達成! 🏆"と表示する。 - そうでなければ、
"よくがんばったね!もう一度遊ぼう! 🎮"と表示する。
score を 80 に変えたらロボットは何と答えるかな? ぜひ試してみてね!
次回は、ロボットが何回同じことをしても絶対に疲れない「ループ(繰り返し)」について学ぶよ。お楽しみに!