計算問題をワンクリックで作成するpython exeを作成してみた。

久々の投稿です。

2022年も始まり、今年は寅年。いい年にしていきたいです。

今回はテスト時期でもあるので、テスト前に頭の体操のできる簡単な計算問題を作成するPythonデータを作成しました。

で、計算問題ってPython使ってない人も作りたいと思うので、exeファイル化もやってみました。

まずは、計算問題の作成。今回は、二桁の掛け算を10問作るコードにしました。

作成する問題文は下図のとおり。

二桁掛け算

計算問題は、docxファイルで作成されます。なので、ちょっとした修正などもできます。

(計算問題作成のホームページは多数ありますが、ホームページ印刷か、pdf化が一般的だと思うので、ほんとちょっと差別化してみた。触れたからなんだって感じだけど。)

作成するコードは下記のとおり。

#ttest.py
import docx
from docx.shared import Mm
import random

doc = docx.Document()

pg=[]
ab=[]
cd=[]
ans=[]

# a*10+b "*" c*10+d = (a*10+b)*(c*10+d)

for i in range(10):
    a = random.randint(0,9)
    b = random.randint(0,9)
    c = random.randint(0,9)
    d = random.randint(0,9)
    
    ab.append(a*10+b)
    cd.append(c*10+d)
    ans.append(((a*10)+b)*((c*10)+d)) 

    pg.append("")

doc.add_paragraph("計算問題",style="Title")

for i in range(10):
    pg[i] = doc.add_paragraph()
    pg[i].paragraph_format.space_after = docx.shared.Pt(30)
    pg[i].paragraph_format.left_indent = Mm(10)
    pg[i].add_run(f"{i+1} )  {ab[i]} ✕ {cd[i]} =         {ans[i]}")
    pg[i].runs[0].font.size=docx.shared.Pt(20)
#    pg[i].runs[0].space_after = docx.shared.Pt(30)

#print(len(doc.paragraphs))

doc.save("計算問題10問_掛け算.docx")

importしたモジュールは、docx,randomの2つのみ。超シンプル。

doc = docx.Document() でdocxファイルを作成。

doc.saveでdocxファイルを保存する。保存先は、ファイルデータと同一ディレクトリ。

今回は、計算問題10問_掛け算.docxで保存される。

ab,cd,ansのリスト(空のリスト)を作成して、ランダムに設定される数字をリストに入れていく(append)。

pgのリストは、作成されたdocファイルの段落を管理するために作成される。add_paragraph(段落追加)やparagraph_format.space_after(段落間のスペース)等はdocxのホームページ参照。基本、_formatで設定変更できるみたい。runは言葉・文?の塊を作成する。

構成は、paragraph + run[0] + run[1] + ・・・になるみたい。

計算問題を作ってくれるホームページみたいにするには、tkinterを組み合わせればできるけど、今回はexeをクリックで、計算問題のdocxができるのみにします!

これをいつもみたいに、「python ttest.py」で実行すればOK。

これだと、pythonが入っている人しか使えない。。。。

一般的に使うには、これでは困るので、exe化をする。

ネットを探していると、すぐに見つかりますので、pyinstallerを使用します。

pyinstaller はインストールが必要。[pip install pyinstaller]でOK。

exe化

コマンドプロンプトで、下記を実行。

「pyinstaller ttest.py –onefile」

これだけ。すると、ttest.pyがあるディレクトリに下記のファイルができる。

ttest.specファイル、distディレクトリ、buildディレクトリが作成される。

exeファイルはdistディレクトリに保存されている。

作成されたexeファイルは、ここからzip ダウンロード可能?

○計算問題10問_掛け算

単純な計算を何個も作るって密かに面倒だと思うので、いいかも。使い方ではドリルっていらないなって思いますね。本当はランダムで割り算、足し算、引き算も入れたかったんですけどね。また今度にします。

使う人いるのかな。。。。。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中