pythonで問題集作ってみた!

 はじめまして、にわこまです。今回はpythonで足し算、引き算、掛け算、割り算の問題集を作ってみました。

 小学生くらいのお子さんをお持ちの親御さん!

 こどものために問題集買っていませんか?

 一つの問題集が終わったら次の問題集をかいますよね?

 こどものためとは言え、出費になりますよね?

 今回はそんな方におすすめ出来る問題集を自動で生成するプログラムを開発しました。

 分かりにくい点や何かご指摘があればご連絡ください!

スポンサードサーチ


pythonで問題集作ってみた!

 今回は小学生レベルの問題集を作ってみました。

 ゆえに、小学生のお子さんがいらっしゃる親御さんにぜひ見てほしいです。

 ほかにも、python初心者の方にもぜひ見ていただきたいと思っています。

 小学生くらいの頃は、頭のよい子に育ってほしくて問題集を買ってやらせてみたりしますよね?例えば、百マス計算とか

でも、毎回買っていたら出費になりますよね。

 そこで自作で作れたらかなり出費が少なくなるのではないかと考えてみました。

 簡単な四則演算の問題集をpythonで作ってみました。 pythonを動かせる環境さえ整っていれば簡単に問題集を生成することができます。

コード

必要なプログラムとしては3つあります。

1つ目は、問題を生成するpythonのプログラム
2つ目は、htmlを装飾するCSSのプログラム
3つ目は、htmlからプリントアウトするときに必要なプログラム

 しかし、すべてコピーしていただき、同じフォルダに置いてくれれば問題ありません。

 もっと応用させたいと思はなければ、コードを理解していただく必要はありません。 これからコードの説明をしますが、必要でなければ飛ばし下さい。

コードを書くにあたってどのように生成するか考えてみました。

1.数字をランダムに選ぶ
2.文字列(html)に代入していく
3.htmlファイルに書き込む それでは以下にコードを示します。

# 問題を生成するpythonのプログラム

import random

html = """
        <!DOCTYPE html>
        <html lang="ja" dir="ltr">
          <head>
            <meta charset="utf-8">
            <title>足し算用</title>
            <link rel="stylesheet" href="style.css" media="screen">
            <link rel="stylesheet" href="print.css" media="print">

          </head>
          <body>
            <div class="main-body">
              <article class="add-calculation">
                <section>
                  {0}
                </section>
                <section>
                  {1}
                </section>
              </article>

              <article class="add-calculation">
                <section>
                  {2}
                </section>
                <section>
                  {3}
                </section>
              </article>

              <article class="add-calculation">
                <section>
                  {4}
                </section>
                <section>
                  {5}
                </section>
              </article>

              <article class="add-calculation">
                <section>
                  {6}
                </section>
                <section>
                  {7}
                </section>
              </article>

              <article class="add-calculation">
                <section>
                  {8}
                </section>
                <section>
                  {9}
                </section>
              </article>


            </div>
          </body>
        </html>
        """

number_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
formula0 = formula1 = formula2 = formula3 = formula4 = formula5 = formula6 = formula7 = formula8 = formula9 = ""
formula_list = [formula0, formula1, formula2, formula3, formula4,
                formula5, formula6, formula7, formula8, formula9,]

for i in range(len(number_list)):
    r = random.randint(0, 9)
    str = "{0} + {1} = ".format(i + r, number_list[r])
    #str = "{0} - {1} = ".format(i + r, number_list[r])
    #str = "{0} × {1} = ".format(i + r, number_list[r])
    #str = "{0} ÷ {1} = ".format(i + r, number_list[r])
    formula_list[i] = str
    #print(str)

html_w = html.format(formula_list[0], formula_list[1], formula_list[2], formula_list[3], formula_list[4], formula_list[5], formula_list[6], formula_list[7], formula_list[8], formula_list[9])

path = "workbook.html"

with open(path, mode="w", encoding="utf-8") as f:
    f.write(html_w)
/* htmlを装飾するCSSのプログラム  */

@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Merriweather');


body {
  font-family: 'メイリオ', 'Hiraino Kaku Gothic Pro', sans-serif;
  color: #0000ff;
  background-color: #abcdcd;
}

.main-body {
  background-color: #ffffFF;
  margin: 0;
  padding: 0;
}

.add-calculation {
  margin-top: 40px;
  display: flex;
  flex-direction: row;
}

.add-calculation section {
  margin-left: 50px;
  font-size: 30px;
  width: 50%;
  height: 20%;
}


@media (min-width: 1000px) {
  .main-body {
    width: 1000px;
    margin-left: auto;
    margin-right: auto;
  }
}
/* htmlからプリントアウトするときに必要なプログラム  */

body {
  color: #0000ff;
}

.main-body {
  size: A4;
}


.add-calculation {
  margin-top: 40px;
  display: flex;
  flex-direction: row;
}

.add-calculation section {
  margin-left: 50px;
  font-size: 30px;
  width: 50%;
  height: 20%;
}

スポンサードサーチ


手順

 1.まずコマンドプロンプトを起動します。

 windowsであれば左下の検索ボックスに「cmd」と打ち込んでエンターをしていただけたら起動します。

 2.次にpythonのファイルが保存されているディレクトリまで移動します。ディレクトリを移動するには「cd ディレクトリ名」です。または「cd 絶対パス」です。

 3.pythonが保存されているディレクトリまで移動出来たら「python ファイル名.py」と、コマンドを打ち込みます。

 4.そうすると、同じディレクトリに「workbook.html」というファイルが生成されると思います。そのファイルをダブルクリックするとブラウザーに問題が表示されます。

 5.最後に印刷するために、右クリックをして印刷をクリックで印刷します。

pythonで問題集を作ってみた

 今回は小学生レベルの問題集を作ってみましたが、これから中学生や高校生レベルの問題集を作れるように努力してきたいと思います。

 環境さえ整っていればだれでも簡単に問題集をつくることが出来ます。


スポンサードサーチ