Python Forum

Full Version: MCQ logic
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi all,

I am writing a code that read MCQ from a file like this :

N1. question 1
A. answer A
B. answer B
C. answer C
D. answer D

So I create a list that store the question number :
def load_exam_questions_num(filepath):
    # get the questions number
    question_num = 0
    with open(filepath, "r") as file:
        for line in file.readlines():
            if line.startswith('NO.'):
                st.list_q_number.append(line[3:5])
                question_num += 1
then I store the questions in another list :
def load_exam_questions(filepath):
    # get the questions
    question = ""
    with open(filepath, "r") as file:
        for line in file.readlines():
            if line.startswith('A.'):
                st.list_q_desc.append(question.rstrip())
            elif line.startswith('NO.'):
                question = ""
                question += line.strip() + '\n'
            else:
                question += line.strip() + '\n'
and I create a list of list to store the different possible answers :
st.exam_questions = [[0 for j in range(7)] for i in range(len(st.list_q_number))]
then I want to insert on it the answers but I get an error :
def load_exam_answers(filepath):
    answer = ""
    question = 0
    print(st.exam_questions)
    with open(filepath, "r") as file:
        for line in file.readlines():
            if line.startswith('Answer:'):
                st.exam_questions[question][question] = answer.rstrip()
                question += 1
                print(question)
            elif line.startswith('A.	'):
                answer = ""
                answer += line.strip() + '\n'
            else:
                answer += line.strip() + '\n'
Can anyone tell me if my logic is OK ? Undecided