buttonを使用した表示の仕方について教えてください
解決したいこと
Streamlitを使って簡単な算数の問題をランダムで出力して答え合わせまでできるWebアプリを作っています。
「正解表示」ボタンを押すと希望する表示がなされないことと、今まで表示されていた内容も合わせて消えてしまうことを解決したいです。
よろしくお願いします。
発生している問題
問題を出力すると同時に「正解表示」ボタンを作成して、「正解表示」ボタンを押した時に問題を表示したままで正解が表示されるようにしたいのですが、現状では「正解表示」ボタンを押すと正解は表示されず問題も消えてしまう状態です。
1枚目が問題を作成後の画面、2枚目が「正解表示」ボタンを押した画面です。
該当するソースコード
import requests
import streamlit as st
st.title('算数の勉強部屋')
st.write('')
st.sidebar.write("注意:半角小文字の数字を入力してください。")
a = st.sidebar.text_input("問題数")
b = st.sidebar.text_input("桁数")
if st.sidebar.button(" + (足し算)"):
count = 0
for i in range(int(a)):
url = '使用している関数のパス'
response = requests.post(url, json={"num_times": 2, "num_range": int(b)})
answer_list = []
if response.status_code == 200:
multiply_file = response.json()
question_list = multiply_file["question_list"]
answer = multiply_file["answer"]
answer_list.append(answer)
question_no = count +1
st.write(f'<p style="font-size: 20px;">問{question_no}){question_list[0]} + {question_list[1]} =</p>', unsafe_allow_html=True)
count += 1
if count == int(a):
if st.button('正解表示'):
for i in range(int(a)):
answer_no = i + 1
st.write(f'<p style="font-size: 20px;">問{answer_no}){answer_list[i]} =</p>', unsafe_allow_html=True)
else:
st.error(f"{response.status_code}エラーが発生しました。詳細は以下を参照ください")
st.json(response.json())