Resume_score / mcq_test.py
Bhanuprasadchouki's picture
Update mcq_test.py
a5d0dc0 verified
import streamlit as st
import re
def parse_mcq_questions(mcq_list):
# Split the string into individual questions
questions = re.split(r'\d+\.\s+', mcq_list)[1:] # Skip the empty first element
parsed_questions = []
for q in questions:
# Split into question and options
parts = q.strip().split(' - ')
question = parts[0].strip()
options = {
opt[0]: opt[2:].strip()
for opt in parts[1:]
}
parsed_questions.append({
'question': question,
'options': options
})
return parsed_questions
def main():
st.title("Multiple Choice Quiz")
# Initialize session state variables if they don't exist
if 'current_question' not in st.session_state:
st.session_state.current_question = 0
if 'answers' not in st.session_state:
st.session_state.answers = []
if 'questions' not in st.session_state:
# Your MCQ string goes here
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
2. What does "Data Cleaning" refer to in the context of data analysis?
- A) Removing irrelevant data
- B) Transforming data types
- C) Handling missing values and inconsistencies
- D) All of the above
3. What is the purpose of foreign key constraints in database management?
- A) To ensure data integrity and relationships between tables
- B) To speed up query execution
- C) To encrypt sensitive data
- D) To define primary keys
4. Which of the following is a key aspect of "Data Science"?
- A) Building machine learning models
- B) Extracting insights from data
- C) Visualizing data
- D) All of the above
5. What is a primary goal of "relevant analytics experience"?
- A) Gathering data from various sources
- B) Deriving actionable insights from data
- C) Building complex machine learning models
- D) Managing large databases
6. "Data Analytics" typically involves which of the following?
- A) Statistical analysis
- B) Data visualization
- C) Data interpretation
- D) All of the above
7. What are "large data sets" often referred to as?
- A) Big Data
- B) Small Data
- C) Medium Data
- D) Tiny Data
8. "Data Sources" can include which of the following?
- A) Databases
- B) APIs
- C) CSV files
- D) All of the above
9. What is the purpose of "machine learning models"?
- A) To predict outcomes based on data
- B) To store data efficiently
- C) To visualize data relationships
- D) To clean and preprocess data
10. What is a key aspect of "machine learning systems deployment"?
- A) Integrating models into real-world applications
- B) Training machine learning models
- C) Collecting and labeling data
- D) Evaluating model performance
"""
st.session_state.questions = parse_mcq_questions(mcq_list)
# Display current question number and total questions
st.write(f"Question {st.session_state.current_question + 1} of {len(st.session_state.questions)}")
# Display current question
current_q = st.session_state.questions[st.session_state.current_question]
st.write(current_q['question'])
# Create radio buttons for options with the corrected format_func
answer = st.radio(
"Select your answer:",
options=['A', 'B', 'C', 'D'], # List of option keys
format_func=lambda x: f"{x}) {current_q['options'].get(x, ' ')}",
key=f"question_{st.session_state.current_question}" # Unique key per question
)
# Navigation buttons in columns
col1, col2 = st.columns(2)
with col1:
if st.session_state.current_question > 0:
if st.button("Previous"):
st.session_state.current_question -= 1
if st.session_state.answers: # Only remove answer if there are answers
st.session_state.answers = st.session_state.answers[:-1]
st.rerun()
with col2:
if st.session_state.current_question < len(st.session_state.questions) - 1:
if st.button("Next"):
st.session_state.answers.append(f"{st.session_state.current_question + 1}-{answer}")
st.session_state.current_question += 1
st.rerun()
elif st.button("Submit"):
st.session_state.answers.append(f"{st.session_state.current_question + 1}-{answer}")
st.write("Quiz completed! Your answers:")
st.write(st.session_state.answers)
# Add a restart button
if st.button("Restart Quiz"):
st.session_state.current_question = 0
st.session_state.answers = []
st.rerun()
if __name__ == "__main__":
main()