Bhanuprasadchouki commited on
Commit
efe3bdd
·
verified ·
1 Parent(s): 0ec0474

Update mcq_test.py

Browse files
Files changed (1) hide show
  1. 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 the corrected format_func
 
 
27
  answer = st.radio(
28
  "Select your answer:",
29
- options=['A', 'B', 'C', 'D'], # List of option keys
30
- format_func=lambda x: f"{x}) {current_q['options'].get(x, 'Invalid Option')}",
31
- key=f"question_{st.session_state.current_question}" # Unique key per 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()