Update outerElectronFl.py
Browse files- outerElectronFl.py +121 -46
outerElectronFl.py
CHANGED
|
@@ -1,57 +1,132 @@
|
|
| 1 |
-
from flask import Flask, render_template, request,
|
| 2 |
import random
|
| 3 |
|
| 4 |
app = Flask(__name__)
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
}
|
| 32 |
|
| 33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
def quiz():
|
| 35 |
-
|
| 36 |
-
if "element" not in session:
|
| 37 |
-
session["element"] = random.choice(list(element_outer_electrons.keys()))
|
| 38 |
|
| 39 |
-
|
| 40 |
-
user_input = int(request.form["user_input"])
|
| 41 |
-
correct_answer = element_outer_electrons[session["element"]]
|
| 42 |
-
if user_input == correct_answer:
|
| 43 |
-
result = "正解です!"
|
| 44 |
-
else:
|
| 45 |
-
result = f"残念!正解は {correct_answer} でした。"
|
| 46 |
-
return render_template("quiz.html", element=session["element"], result=result)
|
| 47 |
|
| 48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
-
@app.route(
|
| 51 |
def next_question():
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
return redirect(url_for(
|
| 55 |
|
| 56 |
-
if __name__ ==
|
| 57 |
-
app.run(
|
|
|
|
| 1 |
+
from flask import Flask, render_template, request, redirect, url_for
|
| 2 |
import random
|
| 3 |
|
| 4 |
app = Flask(__name__)
|
| 5 |
+
|
| 6 |
+
# 首都のデータを辞書に格納する
|
| 7 |
+
capitals = {
|
| 8 |
+
'MgCl2': '塩化マグネシウム',
|
| 9 |
+
'MgO': '酸化マグネシウム',
|
| 10 |
+
'MgF2': 'フッ化マグネシウム',
|
| 11 |
+
'MgS': '硫化マグネシウム',
|
| 12 |
+
'MgOH2': '水酸化マグネシウム',
|
| 13 |
+
'MgI2': 'ヨウ化マグネシウム',
|
| 14 |
+
'CaCl2': '塩化カルシウム',
|
| 15 |
+
'CaO': '酸化カルシウム',
|
| 16 |
+
'CaF2': 'フッ化カルシウム',
|
| 17 |
+
'CaS': '硫化カルシウム',
|
| 18 |
+
'CaOH2': '水酸化カルシウム',
|
| 19 |
+
'CaI2': 'ヨウ化カルシウム',
|
| 20 |
+
'ZnCl2': '塩化亜鉛',
|
| 21 |
+
'ZnO': '酸化亜鉛',
|
| 22 |
+
'ZnF2': 'フッ化亜鉛',
|
| 23 |
+
'ZnS': '硫化亜鉛',
|
| 24 |
+
'ZnOH2': '水酸化亜鉛',
|
| 25 |
+
'ZnI2': 'ヨウ化亜鉛',
|
| 26 |
+
'NaCl': '塩化ナトリウム',
|
| 27 |
+
'Na2O': '酸化ナトリウム',
|
| 28 |
+
'NaF': 'フッ化ナトリウム',
|
| 29 |
+
'Na2S': '硫化ナトリウム',
|
| 30 |
+
'NaOH': '水酸化ナトリウム',
|
| 31 |
+
'NaI': 'ヨウ化ナトリウム',
|
| 32 |
+
'KCl': '塩化カリウム',
|
| 33 |
+
'K2O': '酸化カリウム',
|
| 34 |
+
'KF': 'フッ化カリウム',
|
| 35 |
+
'K2S': '硫化カリウム',
|
| 36 |
+
'KOH': '水酸化カリウム',
|
| 37 |
+
'KI': 'ヨウ化カリウム',
|
| 38 |
+
'HCl': '塩酸',
|
| 39 |
+
'H2O': '水',
|
| 40 |
+
'HF': 'フッ化水素',
|
| 41 |
+
'H2S': '硫化水素',
|
| 42 |
+
'HOH': '水', # HOHも水のもう一つの表記
|
| 43 |
+
'HI': 'ヨウ化水素',
|
| 44 |
+
'CuCl': '塩化銅(I)',
|
| 45 |
+
'Cu2O': '酸化銅(I)',
|
| 46 |
+
'CuF': 'フッ化銅(I)',
|
| 47 |
+
'Cu2S': '硫化銅(I)',
|
| 48 |
+
'CuOH': '水酸化銅(I)',
|
| 49 |
+
'CuI': 'ヨウ化銅(I)',
|
| 50 |
+
'CuCl2': '塩化銅(II)',
|
| 51 |
+
'CuO': '酸化銅(II)',
|
| 52 |
+
'CuF2': 'フッ化銅(II)',
|
| 53 |
+
'CuS': '硫化銅(II)',
|
| 54 |
+
'CuOH2': '水酸化銅(II)',
|
| 55 |
+
'CuI2': 'ヨウ化銅(II)',
|
| 56 |
+
'AgCl': '塩化銀',
|
| 57 |
+
'Ag2O': '酸化銀',
|
| 58 |
+
'AgF': 'フッ化銀',
|
| 59 |
+
'Ag2S': '硫化銀',
|
| 60 |
+
'AgOH': '水酸化銀',
|
| 61 |
+
'AgI': 'ヨウ化銀',
|
| 62 |
+
'BaCl2': '塩化バリウム',
|
| 63 |
+
'BaO': '酸化バリウム',
|
| 64 |
+
'BaF2': 'フッ化バリウム',
|
| 65 |
+
'BaS': '硫化バリウム',
|
| 66 |
+
'BaOH2': '水酸化バリウム',
|
| 67 |
+
'BaI2': 'ヨウ化バリウム',
|
| 68 |
+
'FeCl2': '塩化鉄(II)',
|
| 69 |
+
'FeO': '酸化鉄(II)',
|
| 70 |
+
'FeF2': 'フッ化鉄(II)',
|
| 71 |
+
'FeS': '硫化鉄(II)',
|
| 72 |
+
'FeOH2': '水酸化鉄(II)',
|
| 73 |
+
'FeI2': 'ヨウ化鉄(II)',
|
| 74 |
+
'MnCl2': '塩化マンガン(II)',
|
| 75 |
+
'MnO': '酸化マンガン(II)',
|
| 76 |
+
'MnF2': 'フッ化マンガン(II)',
|
| 77 |
+
'MnS': '硫化マンガン(II)',
|
| 78 |
+
'MnOH2': '水酸化マンガン(II)',
|
| 79 |
+
'MnI2': 'ヨウ化マンガン(II)',
|
| 80 |
+
'MnCl': '塩化マンガン(I)',
|
| 81 |
+
'Mn2O': '酸化マンガン(I)',
|
| 82 |
+
'MnF': 'フッ化マンガン(I)',
|
| 83 |
+
'Mn2S': '硫化マンガン(I)',
|
| 84 |
+
'MnOH': '水酸化マンガン(I)',
|
| 85 |
+
'MnI': 'ヨウ化マンガン(I)',
|
| 86 |
+
'PbCl2': '塩化鉛(II)',
|
| 87 |
+
'PbO': '酸化鉛(II)',
|
| 88 |
+
'PbF2': 'フッ化鉛(II)',
|
| 89 |
+
'PbS': '硫化鉛(II)',
|
| 90 |
+
'PbOH2': '水酸化鉛(II)',
|
| 91 |
+
'PbI2': 'ヨウ化鉛(II)',
|
| 92 |
+
'AlCl3': '塩化アルミニウム',
|
| 93 |
+
'Al2O3': '酸化アルミニウム',
|
| 94 |
+
'AlF3': 'フッ化アルミニウム',
|
| 95 |
+
'Al2S3': '硫化アルミニウム',
|
| 96 |
+
'AlOH3': '水酸化アルミニウム',
|
| 97 |
+
'AlI3': 'ヨウ化アルミニウム',
|
| 98 |
}
|
| 99 |
|
| 100 |
+
|
| 101 |
+
|
| 102 |
+
# ランダムな国名とその首都を取得する関数
|
| 103 |
+
def get_random_country():
|
| 104 |
+
country = random.choice(list(capitals.keys()))
|
| 105 |
+
return capitals[country],country
|
| 106 |
+
|
| 107 |
+
# 初期の問題を設定する
|
| 108 |
+
current_化合物, current_化合物名 = get_random_country()
|
| 109 |
+
|
| 110 |
+
@app.route('/', methods=['GET', 'POST'])
|
| 111 |
def quiz():
|
| 112 |
+
global current_化合物, current_化合物名
|
|
|
|
|
|
|
| 113 |
|
| 114 |
+
result = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
|
| 116 |
+
if request.method == 'POST':
|
| 117 |
+
user_input = request.form['user_input']
|
| 118 |
+
if user_input == current_化合物名:
|
| 119 |
+
result = '正解です!'
|
| 120 |
+
else:
|
| 121 |
+
result = '不正解です。正解は{}です。'.format(current_化合物名)
|
| 122 |
+
|
| 123 |
+
return render_template('quiz.html', element=current_化合物, result=result)
|
| 124 |
|
| 125 |
+
@app.route('/next', methods=['POST'])
|
| 126 |
def next_question():
|
| 127 |
+
global current_化合物, current_化合物名
|
| 128 |
+
current_化合物, current_化合物名 = get_random_country()
|
| 129 |
+
return redirect(url_for('quiz'))
|
| 130 |
|
| 131 |
+
if __name__ == '__main__':
|
| 132 |
+
app.run(debug=True, port=5505)
|