OzoneAsai commited on
Commit
9deadaf
1 Parent(s): 536f806

Update outerElectronFl.py

Browse files
Files changed (1) hide show
  1. outerElectronFl.py +121 -46
outerElectronFl.py CHANGED
@@ -1,57 +1,132 @@
1
- from flask import Flask, render_template, request, session, redirect, url_for
2
  import random
3
 
4
  app = Flask(__name__)
5
- app.secret_key = "your_secret_key_here"
6
-
7
- # 元素と最外殻電子の数の辞書
8
- element_outer_electrons: dict[str, int] = {
9
- "水素": 1,
10
- "ヘリウム": 2,
11
- "リチウム": 1,
12
- "ベリリウム": 2,
13
- "ホウ素": 3,
14
- "炭素": 4,
15
- "窒素": 5,
16
- "酸素": 6,
17
- "フッ素": 7,
18
- "アルゴン": 8,
19
- "クリプトン": 8,
20
- "キセノン": 8,
21
- "ナトリウム": 1,
22
- "マグネシウム": 2,
23
- "アルミニウム": 3,
24
- "ケイ素": 4,
25
- "リン": 5,
26
- "硫黄": 6,
27
- "塩素": 7,
28
- "カリウム": 1,
29
- "カルシウム": 2,
30
- # 他の元素も追加可能
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
 
33
- @app.route("/", methods=["GET", "POST"])
 
 
 
 
 
 
 
 
 
 
34
  def quiz():
35
- # セッションに元素がない場合はランダムに選択
36
- if "element" not in session:
37
- session["element"] = random.choice(list(element_outer_electrons.keys()))
38
 
39
- if request.method == "POST":
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
- return render_template("quiz.html", element=session["element"], result=None)
 
 
 
 
 
 
 
49
 
50
- @app.route("/next", methods=["POST"])
51
  def next_question():
52
- # 次の問題をセッションに設定し、リダイレクト
53
- session["element"] = random.choice(list(element_outer_electrons.keys()))
54
- return redirect(url_for("quiz"))
55
 
56
- if __name__ == "__main__":
57
- app.run(port=7860,host="0.0.0.0")
 
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)