Python quiz - Where the user can add his questions

Viewed 60

I'm making a quiz in Python where a user can add himself the questions and answers and specify the correct one. I already did this

# Do you want to add another question version
from Question import Question

question_prompt = []
answer_list = []
def add_Question():
        question = input('Add your question: ')
        print(question)
        test = int(input('If your question is correct. Enter 1 else enter 2: '))
        if test == 1:
            print('Type the answers propositions: ')
            a = input('(a): ')
            b = input('(b): ')
            c = input('(c): ')
            d = input('(d): ')
            # print(a + '\n' + b + '\n' + c + '\n' + d )
            answer = input('Which one is the correct answer? (a) (b) (c) or (d). Just type the letter ie. a: ').lower()
            question_insert = f"{question} \n {a} \n {b} \n {c} \n {d}\n\n"
            question_prompt.append(question_insert)
            answer_list.append(answer)
            listing = tuple(zip(question_prompt, answer_list))
            questions = [Question(question_prompt[i],answer_list[i]) for i in range(0, len(listing))]
        else : 
            question = input('add your question: ')
            print(question)
            test = int(input('if your question is correct. Enter 1 else enter 2: '))
        return question, a,b,c,d,answer
    
def insert_question_prompt() :
    again = int(input("Do you want to add another question. 1 = 'yes' and 2 = 'no' "))
    while again == 1:
        add_Question()
        again = int(input("Do you want to add another question. 1 = 'yes' and 2 = 'no' "))
        print(question_prompt)

def run_test(questions):
    score = 0
    for question in questions:
        answer = input(question.prompt)
        if answer == question.answer:
            score += 1
    print("Hey You got " + str(score) + "out of " + str(len(questions)) + "questions correct")
        

# questions = [Question(question_prompt[i],answer_list[i]) for i in range(0, len(listing))]       
add_Question()
insert_question_prompt()

print(question_prompt)
print(answer_list)

In the function def insert_question_prompt() : I ask the user if he wants to insert another question and repeat the add_Question function.

The run_test function is to test the quiz. Play and access it

But I am unable to access question_prompt and answer_list in the run_test function even though they are not empty. Basically, I'm blocked at level where the user can test the quiz ie Play and have the score.

Thanks for your help

0 Answers
Related