pythonで1次方程式の問題を作る方法
はじめまして、にわこまです。今回は1次方程式をコマンド一つで自動生成する方法紹介していきたいと思います。
何か不明な点やご指摘があればご連絡ください!
スポンサードサーチ
そもそも1次方程式とはなにか?
一言でいうと「未知数の最高次数が1である方程式」です。
(例: 2x + 2 = 4 etc)
中学生くらいのときに習うと思います。
なぜ作ろうと思った?
学校の問題って、先生たちが作っていて大変だと思ったからです。実際には教科書や問題集から問題を引っ張ってきて数字を変えているだけだと思いますが…
問題って意外にも著作権があったりするので作るのが難しいと思ったので、1次方程式の問題を作ろうと思いました。
学校の先生やpythonの勉強している人やpythonで何か作りたい人に読んでいただきたいなと思っています。
1次方程式の問題を作る方法
どのような手順で実装したか?今回もhtmlファイルにして、そのページを印刷することで問題を生成していきます。
1.html/css, style.css, print.cssの準備
2.ランダムに数字を選ぶ
3.選んだ数字を式に代入
4.生成された式をhtmlファイルへ書き込み
コードの公開
style.cssy↓↓↓
@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;
}
}
print.css↓↓↓
body {
color: #0000ff;
}
.main-body {
size: A4;
}
.container {
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%;
}
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 = [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(0, 10):
random_list = []
for j in range(4):
r = random.randint(1, 8)
random_list.append(r)
str = "{0}x + {1} = {2}x + {3}".format(random_list[0], random_list[1], random_list[2], random_list[3])
formula_list[i] = 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 = "Linear-Equation.html"
with open(path, mode="w", encoding="utf-8") as f:
f.write(html_w)
全てのファイルを同じフォルダに保存して下さい。
style.cssとprint.cssは名前を変えずそのまま保存してください。pythonファイルの名前は何でもOKです。
実行する方法は、まずコマンドプロンプトを起動して保存したフォルダまで移動して下さい。次に、「python ファイル名.py」と打ち込んで下さい。
そうすると、同フォルダにhtmlファイルが生成されていると思います。そのファイルをダブルクリックすることで、問題が表示されます。
最後に、そのページを印刷することで問題集として使用することが出来ます。
スポンサードサーチ
まとめ
今回はpythonで1次方程式の問題を自動生成してくれるプログラムを書いてみました。
しかし、1次方程式が1パターンしか生成されないので改良していきたいと思います。
最後まで読んでいただきありがとうございます。
スポンサードサーチ