blog.dopana

Back

プログラマーのみなさん、おかえりなさい! 🚀

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("森の冒険を続ける... 🗺️")
python

Pythonで別れ道を書くときのルール#

ロボットに判断を教えるときは、3つの大切なルールがあります:

  1. 質問の式:比較の記号を使って質問を書きます(例:>= は「以上」)。
  2. コロン ::質問の文の最後には、必ずコロンをつけます。これはロボットに「ここから別れ道のスタートだよ!」と教えているんだ。
  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

コイン coins6 枚のとき、ロボットは1つ目の道(剣)をチェックし(ちがう)、2つ目の道(盾)をチェックして(あたり!)、「木の盾を買う! 🛡️」 と答えてくれます。

自分でやってみよう! 🎮#

ゲームのスコアをチェックするコードを書いてみよう!

  1. 変数 score を作って、値を 120 にします。
  2. もし score が 100 より大きければ、"ハイスコア達成! 🏆" と表示する。
  3. そうでなければ、"よくがんばったね!もう一度遊ぼう! 🎮" と表示する。

score を 80 に変えたらロボットは何と答えるかな? ぜひ試してみてね!

次回は、ロボットが何回同じことをしても絶対に疲れない「ループ(繰り返し)」について学ぶよ。お楽しみに!

参照#