1日目のゴールと全体像
1日目のテーマは 「Pythonの超基本(変数・入力・条件分岐)だけで、1回勝負のじゃんけんゲームを動かしてみること」 です。
この日はまだ「繰り返し」「ファイル操作」は軽く触れる程度にして、 まずは “1回だけじゃんけんして結果を表示する” ところまでを目標にします。
- プレイヤーが「グー / チョキ / パー」を入力する
- コンピュータがランダムに手を選ぶ
- 勝ち・負け・あいこを判定して表示する
この流れの中で、自然に
- 変数
- 条件分岐(if / elif / else)
- 標準入力(input)
- ランダム(random)
を体験していきます。
じゃんけんゲームの全体イメージ
1回勝負のじゃんけんゲームの流れは、こうなります。
- プレイヤーに「グー / チョキ / パー」を入力してもらう
- コンピュータの手をランダムに決める
- 勝ち負けを判定する
- 結果を表示する
この4ステップを、Pythonのコードに落とし込んでいきます。
変数:値に名前をつける
変数って何?
変数は、 「値に名前をつけて、あとで使えるようにする仕組み」 です。
じゃんけんゲームでは、例えばこんな変数を使います。
player_hand:プレイヤーの手computer_hand:コンピュータの手result:勝ち負けの結果
例:変数の基本
player_hand = "グー" # プレイヤーの手
computer_hand = "チョキ" # コンピュータの手
result = "勝ち" # 結果
Pythonここではまだ固定値ですが、 後で input() や random を使って動的に変えていきます。
プレイヤーの入力を受け取る(input)
コンソールから入力する
Pythonでは、input() を使うと ユーザーから文字列を入力してもらう ことができます。
player_hand = input("あなたの手を入力してください(グー/チョキ/パー):")
print("あなたの手は:", player_hand)
Pythoninput("...")の中の文字列が、画面に表示されるメッセージ- ユーザーが入力した内容が、
player_handに文字列として入ります
コンピュータの手をランダムに決める
randomモジュールを使う
Pythonには、ランダムな値を作るための random モジュールがあります。
import random # ランダムを使うためのモジュール
hands = ["グー", "チョキ", "パー"] # 手の候補をリストで用意
computer_hand = random.choice(hands) # リストからランダムに1つ選ぶ
print("コンピュータの手は:", computer_hand)
Pythonポイント:
import randomでランダム機能を使えるようにする["グー", "チョキ", "パー"]は「リスト」と呼ばれる、複数の値の入れ物random.choice(hands)で、リストからランダムに1つ選べる
条件分岐で勝ち負けを判定する
if / elif / else の基本
じゃんけんの勝敗は、 「プレイヤーの手」と「コンピュータの手」の組み合わせで決まる」 ので、条件分岐がぴったりです。
if player_hand == computer_hand:
result = "あいこ"
elif player_hand == "グー" and computer_hand == "チョキ":
result = "勝ち"
elif player_hand == "チョキ" and computer_hand == "パー":
result = "勝ち"
elif player_hand == "パー" and computer_hand == "グー":
result = "勝ち"
else:
result = "負け"
Python深掘りポイント:
if:最初の条件elif:それ以外の条件(複数書ける)else:どれにも当てはまらない場合and:両方の条件が真のときに真になる
ここでは「勝ちパターン」を3つ書き、 それ以外は負けとみなしています。
1日目の完成コード:1回勝負のじゃんけんゲーム
ここまでの要素を全部つなげると、 「1回だけじゃんけんして結果を表示する」 シンプルなゲームが完成します。
import random # ランダムな手を選ぶためのモジュール
def main():
# プレイヤーの手を入力してもらう
player_hand = input("あなたの手を入力してください(グー/チョキ/パー):")
# コンピュータの手をランダムに決める
hands = ["グー", "チョキ", "パー"] # 手の候補をリストで用意
computer_hand = random.choice(hands) # ランダムに1つ選ぶ
# 入力内容とコンピュータの手を表示
print("あなたの手は:", player_hand)
print("コンピュータの手は:", computer_hand)
# 勝敗判定
if player_hand == computer_hand:
result = "あいこ"
elif player_hand == "グー" and computer_hand == "チョキ":
result = "勝ち"
elif player_hand == "チョキ" and computer_hand == "パー":
result = "勝ち"
elif player_hand == "パー" and computer_hand == "グー":
result = "勝ち"
else:
result = "負け"
# 結果を表示
print("結果:", result)
# Pythonの「入口」
if __name__ == "__main__":
main()
Pythonこのコードで学べること
- 変数:
player_hand,computer_hand,result - 条件分岐:
if / elif / else - 関数:
main()という「処理のかたまり」に名前をつけている - 繰り返し:まだ使っていないが、2日目以降で「何回も遊べるように」する
- ファイル操作:1日目では触れないが、後半で「勝敗ログを保存する」などに発展できる
1日目で本当に掴んでほしいこと
1. 「動くもの」を作る感覚
たとえシンプルでも、 自分の入力に応じてコンピュータが反応する という体験は、プログラミング学習の大きなモチベーションになります。
2. 変数と条件分岐は、ほぼすべてのプログラムの土台
- 何かを「覚えておく」のが変数
- 状況に応じて「分岐する」のが条件分岐
この2つがわかると、 じゃんけん以外のロジックも自然に書けるようになります。
3. 関数で「処理に名前をつける」
main() のように関数を作ることで、 コードの「まとまり」が見えやすくなります。 後で「勝敗判定だけを関数に切り出す」などの発展もできます。
次のステップ
2日目では、この1回勝負のじゃんけんゲームを
- 何回も遊べるようにする(繰り返し)
- 勝ち数・負け数・あいこ数をカウントする(変数+繰り返し)
といった形で育てていきます。
「1回だけ」から「何度でも遊べるゲーム」へ進化させることで、 繰り返し(for / while) の感覚が自然に身につきます。


