【Pythonミニゲーム第5回】割り算クイズゲームを作ってみた!初心者向けに/と%もやさしく整理

【広告/PR】この記事にはアフィリエイトリンクを含みます。

こんにちは!Web整備士です。

今回は、Pythonミニゲーム第5回です。

前回は、足し算・引き算・掛け算がランダムで出るクイズゲームを作りました。

今回はその続きで、割り算クイズゲームを作ってみます。

ただ、割り算は少しだけややこしいです。

Pythonでは、割り算に / を使います。

整数だけ出したいときは // を使います。

あまりだけ出したいときは % を使います。

いきなり全部を完璧に覚えなくてOKです。

まずは、コピペして割り切れる割り算ゲームを動かしてみます。

今回作るもの

今回作るのは、こんなゲームです。

  • Pythonだけで動く
  • VS Codeとターミナルで遊べる
  • 割り算の問題が5問出る
  • 答えを入力すると、正解・不正解が出る
  • 答えが小数にならないように作る

今回は、初心者向けに割り切れる問題だけにします。

まず知っておくこと:/・//・% の違い

Pythonの割り算では、似たような記号が出てきます。

記号 意味
/ 普通の割り算 7 / 23.5
// 整数の答えだけ 7 // 23
% あまりだけ 7 % 21

まずはこれだけ

/ は普通の割り算です。

// は整数の答えだけを出します。

% は「あまりだけ」を出します。

今回のゲームでは、小数にならないように工夫します。

完成コード:割り切れる割り算クイズゲーム

こちらが完成版です。

コピーして、そのまま使ってOKです。

import random

print("割り算クイズゲーム!")
print("割り切れる割り算の問題が5問出ます。")

# 正解した数を数える
score = 0

# 5回くり返す
for i in range(5):
    # 割る数を作る
    num2 = random.randint(1, 10)

    # 先に答えを作る
    answer = random.randint(1, 10)

    # 割られる数を作る
    num1 = num2 * answer

    # 問題を出す
    print()
    print(f"第{i + 1}問:{num1} / {num2} はいくつ?")

    # プレイヤーに答えを入力してもらう
    user_answer = int(input("答えを入力してね:"))

    # 正解かどうかを判定する
    if user_answer == answer:
        print("正解!")
        score = score + 1
    else:
        print("残念!正解は", answer, "でした。")

# 最後に結果を表示する
print()
print("ゲーム終了!")
print("あなたの正解数は", score, "問です。")

遊び方

VS Codeで、次の名前のファイルを作ります。

division_quiz.py

その中に、完成コードを貼り付けて保存します。

Windowsの場合

VS Codeのターミナルで、次のどちらかを入力します。

python division_quiz.py

もし動かない場合は、こちらも試してみてください。

py division_quiz.py

Macの場合

Macの場合は、次のコマンドで動かします。

python3 division_quiz.py

問題が出たら、答えの数字を入力してEnterを押します。

ポイント

このゲームは、ブログの記事の中で動かすものではありません。

VS Codeとターミナルで動かして遊ぶPythonゲームです。

なぜ先に答えを作るの?

今回のコードは、少し変わった作り方をしています。

num2 = random.randint(1, 10)
answer = random.randint(1, 10)
num1 = num2 * answer

普通は、先に問題を作ってから答えを出しそうですよね。

でも割り算は、適当に数字を作ると小数になることがあります。

たとえば、こんな感じです。

7 / 2

これは 3.5 になります。

初心者向けだと少しややこしいので、今回は先に答えを作っています。

イメージ

答えを先に決める。

割る数を決める。

最後に、割られる数を作る。

こうすると、割り切れる問題が作れます。

コードの説明は3つだけ

1. num2 は割る数

num2 = random.randint(1, 10)

num2 は、割る数です。

たとえば、12 / 33 の部分です。

2. answer は正解

answer = random.randint(1, 10)

先に、答えを作っています。

これで、小数にならない問題を作りやすくしています。

3. num1 は割られる数

num1 = num2 * answer

num1 は、問題の最初に出る数字です。

たとえば、12 / 312 の部分です。

num2answer を掛け算して、割り切れる数字を作っています。

% は「あまりだけ」を出す記号

ここは少し大事です。

% は、割り算の答えを全部出す記号ではありません。

あまりだけを出す記号です。

print(7 % 2)

これは、7 ÷ 2 = 3 あまり 1 の「あまり 1」だけを出します。

なので、結果はこうなります。

1

ざっくり言うと

/ は普通の割り算。

// は整数の答えだけ。

% はあまりだけ。

まずはこれだけでOKです。

整数とあまりを両方出したい場合

割り算では、整数の答えと「あまり」を出したいときもあります。

たとえば、7 ÷ 23 あまり 1 です。

Pythonでは、整数の答えには // を使います。

あまりには % を使います。

num1 = 7
num2 = 2

print(num1, "÷", num2, "=", num1 // num2, "あまり", num1 % num2)

実行すると、こう出ます。

7 ÷ 2 = 3 あまり 1

ここだけ覚えればOK

// は整数の答え。

% はあまり。

この2つを一緒に使うと、「3 あまり 1」のように表示できます。

ちょっとだけカスタマイズして遊ぶ

このゲームは、少し数字を変えるだけで遊び方を変えられます。

やりたいこと 変える場所
問題数を増やす range(5) range(10)
割る数を大きくする num2 = random.randint(1, 10) num2 = random.randint(1, 20)
答えを大きくする answer = random.randint(1, 10) answer = random.randint(1, 20)
もっと簡単にする random.randint(1, 10) random.randint(1, 5)

まずは、そのまま動けばOKです。

プログラミングを基礎から学びたい人へ

今回みたいに、短いコードを少しずつ変えていくと、Pythonの勉強はかなりやりやすくなります。

ただ、独学だと「エラーが出たときに止まる」「何から勉強すればいいかわからない」こともあります。

基礎から教えてもらいたい人は、プログラミングスクールを調べてみるのも一つの方法です。

資格と仕事に強い!個人レッスンのプログラミングスクール【Winスクール】

まとめ

今回は、Pythonで割り算クイズゲームを作りました。

  • / は普通の割り算
  • // は整数の答えだけ
  • % はあまりだけ
  • 割り切れる問題にするために、先に答えを作る
  • for で5問くり返す
  • if で正解かどうかを判定する

割り算は、足し算や掛け算より少しクセがあります。

でも、今回みたいに「割り切れる問題」にすると、初心者でも遊びやすくなります。

まずはそのまま動かしてみてください。

動いたら成功です。

コメント

このブログの人気の投稿

1つの商品を紹介する記事の形を作りやすくする無料テンプレ

比較記事テンプレ 見た目編|目的に合わせて見やすく整える考え方

サイトやブログのホーム画面の見せ方テンプレ【無料HTML】