Spaces:
Sleeping
Sleeping
Update outerElectronFl.py
Browse files- outerElectronFl.py +98 -9
outerElectronFl.py
CHANGED
|
@@ -30,8 +30,97 @@ element_outer_electrons: dict[str, int] = {
|
|
| 30 |
# 他の元素も追加可能
|
| 31 |
}
|
| 32 |
|
| 33 |
-
|
| 34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
# セッションに元素がない場合はランダムに選択
|
| 36 |
if "element" not in session:
|
| 37 |
session["element"] = random.choice(list(element_outer_electrons.keys()))
|
|
@@ -43,15 +132,15 @@ def quiz():
|
|
| 43 |
result = "正解です!"
|
| 44 |
else:
|
| 45 |
result = f"残念!正解は {correct_answer} でした。"
|
| 46 |
-
return render_template("
|
| 47 |
|
| 48 |
-
return render_template("
|
| 49 |
|
| 50 |
-
@app.route("/
|
| 51 |
-
def
|
| 52 |
# 次の問題をセッションに設定し、リダイレクト
|
| 53 |
session["element"] = random.choice(list(element_outer_electrons.keys()))
|
| 54 |
-
return redirect(url_for("
|
| 55 |
|
| 56 |
-
if __name__ ==
|
| 57 |
-
app.run(port=7860
|
|
|
|
| 30 |
# 他の元素も追加可能
|
| 31 |
}
|
| 32 |
|
| 33 |
+
# 首都のデータを辞書に格納する
|
| 34 |
+
capitals = {
|
| 35 |
+
'アルバニア': 'ティラナ',
|
| 36 |
+
'アンドラ': 'アンドラ・ラ・ベリャ',
|
| 37 |
+
'オーストリア': 'ウィーン',
|
| 38 |
+
'ベラルーシ': 'ミンスク',
|
| 39 |
+
'ベルギー': 'ブリュッセル',
|
| 40 |
+
'ボスニア・ヘルツェゴビナ': 'サライェヴォ',
|
| 41 |
+
'ブルガリア': 'ソフィア',
|
| 42 |
+
'クロアチア': 'ザグレブ',
|
| 43 |
+
'チェコ': 'プラハ',
|
| 44 |
+
'デンマーク': 'コペンハーゲン',
|
| 45 |
+
'エストニア': 'タリン',
|
| 46 |
+
'フィンランド': 'ヘルシンキ',
|
| 47 |
+
'フランス': 'パリ',
|
| 48 |
+
'ドイツ': 'ベルリン',
|
| 49 |
+
'ギリシャ': 'アテネ',
|
| 50 |
+
'ハンガリー': 'ブダペスト',
|
| 51 |
+
'アイスランド': 'レイキャヴィーク',
|
| 52 |
+
'アイルランド': 'ダブリン',
|
| 53 |
+
'イタリア': 'ローマ',
|
| 54 |
+
'ラトビア': 'リガ',
|
| 55 |
+
'リヒテンシュタイン': 'ファドゥーツ',
|
| 56 |
+
'リトアニア': 'ヴィリニュス',
|
| 57 |
+
'ルクセンブルク': 'ルクセンブルク',
|
| 58 |
+
'マルタ': 'バレッタ',
|
| 59 |
+
'モルドバ': 'キシナウ',
|
| 60 |
+
'モナコ': 'モナコ',
|
| 61 |
+
'モンテネグロ': 'ポドゴリツァ',
|
| 62 |
+
'オランダ': 'アムステルダム',
|
| 63 |
+
'北マケドニア': 'スコピエ',
|
| 64 |
+
'ノルウェー': 'オスロ',
|
| 65 |
+
'ポーランド': 'ワルシャワ',
|
| 66 |
+
'ポルトガル': 'リスボン',
|
| 67 |
+
'ルーマニア': 'ブカレスト',
|
| 68 |
+
'ロシア': 'モスクワ',
|
| 69 |
+
'サンマリノ': 'サンマリノ',
|
| 70 |
+
'セルビア': 'ベオグラード',
|
| 71 |
+
'スロバキア': 'ブラチスラヴァ',
|
| 72 |
+
'スロベニア': 'リュブリャナ',
|
| 73 |
+
'スペイン': 'マドリード',
|
| 74 |
+
'スウェーデン': 'ストックホルム',
|
| 75 |
+
'スイス': 'ベルン',
|
| 76 |
+
'ウクライナ': 'キーウ',
|
| 77 |
+
'イギリス': 'ロンドン',
|
| 78 |
+
'バチカン': 'バチカン',
|
| 79 |
+
'アルメニア': 'エレバン',
|
| 80 |
+
'アゼルバイジャン': 'バクー',
|
| 81 |
+
'キプロス': 'ニコシア',
|
| 82 |
+
'ジョージア': 'トビリシ',
|
| 83 |
+
'イスラエル': 'エルサレム',
|
| 84 |
+
'カザフスタン': 'アスタナ',
|
| 85 |
+
'トルコ': 'アンカラ',
|
| 86 |
+
"エチオピア": "アディスアベバ",
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
# ランダムな国名とその首都を取得する関数
|
| 90 |
+
def get_random_country():
|
| 91 |
+
country = random.choice(list(capitals.keys()))
|
| 92 |
+
return country, capitals[country]
|
| 93 |
+
|
| 94 |
+
# 初期の問題を設定する
|
| 95 |
+
current_country, current_capital = get_random_country()
|
| 96 |
+
|
| 97 |
+
@app.route('/')
|
| 98 |
+
def index():
|
| 99 |
+
return redirect(url_for('quiz_index'))
|
| 100 |
+
|
| 101 |
+
@app.route('/quiz_capital', methods=['GET', 'POST'])
|
| 102 |
+
def quiz_capital():
|
| 103 |
+
global current_country, current_capital
|
| 104 |
+
|
| 105 |
+
result = None
|
| 106 |
+
|
| 107 |
+
if request.method == 'POST':
|
| 108 |
+
user_input = request.form['user_input']
|
| 109 |
+
if user_input == current_capital:
|
| 110 |
+
result = '正解です!'
|
| 111 |
+
else:
|
| 112 |
+
result = '不正解です。正解は{}です。'.format(current_capital)
|
| 113 |
+
|
| 114 |
+
return render_template('quiz_capital.html', element=current_country, result=result)
|
| 115 |
+
|
| 116 |
+
@app.route('/next_capital', methods=['POST'])
|
| 117 |
+
def next_question_capital():
|
| 118 |
+
global current_country, current_capital
|
| 119 |
+
current_country, current_capital = get_random_country()
|
| 120 |
+
return redirect(url_for('quiz_capital'))
|
| 121 |
+
|
| 122 |
+
@app.route('/quiz_element', methods=['GET', 'POST'])
|
| 123 |
+
def quiz_element():
|
| 124 |
# セッションに元素がない場合はランダムに選択
|
| 125 |
if "element" not in session:
|
| 126 |
session["element"] = random.choice(list(element_outer_electrons.keys()))
|
|
|
|
| 132 |
result = "正解です!"
|
| 133 |
else:
|
| 134 |
result = f"残念!正解は {correct_answer} でした。"
|
| 135 |
+
return render_template("quiz_element.html", element=session["element"], result=result)
|
| 136 |
|
| 137 |
+
return render_template("quiz_element.html", element=session["element"], result=None)
|
| 138 |
|
| 139 |
+
@app.route("/next_element", methods=["POST"])
|
| 140 |
+
def next_question_element():
|
| 141 |
# 次の問題をセッションに設定し、リダイレクト
|
| 142 |
session["element"] = random.choice(list(element_outer_electrons.keys()))
|
| 143 |
+
return redirect(url_for("quiz_element"))
|
| 144 |
|
| 145 |
+
if __name__ == '__main__':
|
| 146 |
+
app.run(debug=True, port=7860)
|