Create a test with 3 questions
To upload files, please first save the app
import streamlit as st
# Initialize session state for storing answers and score
if 'answers' not in st.session_state:
st.session_state.answers = {}
st.session_state.submitted = False
st.session_state.score = 0
st.title("Simple Quiz")
# Quiz questions and correct answers
questions = {
"q1": {
"question": "What is the capital of France?",
"options": ["London", "Berlin", "Paris", "Madrid"],
"correct": "Paris"
},
"q2": {
"question": "Which planet is known as the Red Planet?",
"options": ["Venus", "Mars", "Jupiter", "Saturn"],
"correct": "Mars"
},
"q3": {
"question": "What is 2 + 2?",
"options": ["3", "4", "5", "6"],
"correct": "4"
}
}
# Display questions
for q_id, q_data in questions.items():
st.subheader(q_data["question"])
st.session_state.answers[q_id] = st.radio(
"Choose your answer:",
q_data["options"],
key=q_id
)
# Submit button
if st.button("Submit Quiz"):
st.session_state.submitted = True
st.session_state.score = 0
# Calculate score
for q_id, q_data in questions.items():
if st.session_state.answers[q_id] == q_data["correct"]:
st.session_state.score += 1
# Display results if quiz is submitted
if st.session_state.submitted:
st.markdown("---")
st.header("Quiz Results")
st.write(f"Your score: {st.session_state.score} out of {len(questions)}")
# Show correct/incorrect answers
for q_id, q_data in questions.items():
st.write(f"\nQuestion: {q_data['question']}")
st.write(f"Your answer: {st.session_state.answers[q_id]}")
st.write(f"Correct answer: {q_data['correct']}")
if st.session_state.answers[q_id] == q_data['correct']:
st.success("Correct! ✅")
else:
st.error("Incorrect ❌")
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?