Spaces:
Sleeping
Sleeping
Update mcq_test.py
Browse files- mcq_test.py +33 -10
mcq_test.py
CHANGED
@@ -1,3 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
def main():
|
2 |
st.title("Multiple Choice Quiz")
|
3 |
|
@@ -8,12 +31,7 @@ def main():
|
|
8 |
st.session_state.answers = []
|
9 |
if 'questions' not in st.session_state:
|
10 |
# Your MCQ string goes here
|
11 |
-
mcq_list = """1. Which data analysis technique is primarily used to uncover underlying patterns and trends in data?
|
12 |
-
- A) Data Cleaning
|
13 |
-
- B) Exploratory Data Analysis
|
14 |
-
- C) Database Management
|
15 |
-
- D) System Testing
|
16 |
-
"""
|
17 |
st.session_state.questions = parse_mcq_questions(mcq_list)
|
18 |
|
19 |
# Display current question number and total questions
|
@@ -23,12 +41,14 @@ def main():
|
|
23 |
current_q = st.session_state.questions[st.session_state.current_question]
|
24 |
st.write(current_q['question'])
|
25 |
|
26 |
-
# Create radio buttons for options with
|
|
|
|
|
27 |
answer = st.radio(
|
28 |
"Select your answer:",
|
29 |
-
options=['A', 'B', 'C', 'D'],
|
30 |
-
format_func=lambda x: f"{x}) {current_q['options']
|
31 |
-
key=f"question_{st.session_state.current_question}" #
|
32 |
)
|
33 |
|
34 |
# Navigation buttons in columns
|
@@ -58,3 +78,6 @@ def main():
|
|
58 |
st.session_state.current_question = 0
|
59 |
st.session_state.answers = []
|
60 |
st.rerun()
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import re
|
3 |
+
|
4 |
+
def parse_mcq_questions(mcq_list):
|
5 |
+
# Split the string into individual questions
|
6 |
+
questions = re.split(r'\d+\.\s+', mcq_list)[1:] # Skip the empty first element
|
7 |
+
parsed_questions = []
|
8 |
+
|
9 |
+
for q in questions:
|
10 |
+
# Split into question and options
|
11 |
+
parts = q.strip().split(' - ')
|
12 |
+
question = parts[0].strip()
|
13 |
+
options = {
|
14 |
+
opt[0]: opt[2:].strip()
|
15 |
+
for opt in parts[1:]
|
16 |
+
}
|
17 |
+
parsed_questions.append({
|
18 |
+
'question': question,
|
19 |
+
'options': options
|
20 |
+
})
|
21 |
+
|
22 |
+
return parsed_questions
|
23 |
+
|
24 |
def main():
|
25 |
st.title("Multiple Choice Quiz")
|
26 |
|
|
|
31 |
st.session_state.answers = []
|
32 |
if 'questions' not in st.session_state:
|
33 |
# Your MCQ string goes here
|
34 |
+
mcq_list = """1. Which data analysis technique is primarily used to uncover underlying patterns and trends in data? - A) Data Cleaning - B) Exploratory Data Analysis - C) Database Management - D) System Testing....""" # Add your full string here
|
|
|
|
|
|
|
|
|
|
|
35 |
st.session_state.questions = parse_mcq_questions(mcq_list)
|
36 |
|
37 |
# Display current question number and total questions
|
|
|
41 |
current_q = st.session_state.questions[st.session_state.current_question]
|
42 |
st.write(current_q['question'])
|
43 |
|
44 |
+
# Create radio buttons for options with a default value
|
45 |
+
# The key change is here - we're using a different format for radio buttons
|
46 |
+
options = list(current_q['options'].items())
|
47 |
answer = st.radio(
|
48 |
"Select your answer:",
|
49 |
+
options=['A', 'B', 'C', 'D'],
|
50 |
+
format_func=lambda x: f"{x}) {current_q['options'][x]}",
|
51 |
+
key=f"question_{st.session_state.current_question}" # Add unique key for each question
|
52 |
)
|
53 |
|
54 |
# Navigation buttons in columns
|
|
|
78 |
st.session_state.current_question = 0
|
79 |
st.session_state.answers = []
|
80 |
st.rerun()
|
81 |
+
|
82 |
+
if __name__ == "__main__":
|
83 |
+
main()
|