def ask(): print(Terminal.paintHeader("Please answer the following questions")) total_correct = 0 total_correct_by_user = 0 user_raw_input = None for i, question in enumerate(ALL_QUESTIONS): trials = 0 time.sleep(1) while True: print(f"\t{i+1}) {question.textContent} {max_trials - trials} trials left. Score: {total_correct_by_user}") correctAnswers = [] answers = question.allAnswers for idx, a in enumerate(answers): the_letter = ALL_LETTERS[idx] print(f"\t\t{the_letter}) {a['answer'].textContent}") if a['correctNess'] == True: correctAnswers.append(the_letter) user_raw_input = input("[AskLoop:] Enter answer: ") user_inputs = user_raw_input.split(',') if user_raw_input == 'quit': print("leaving while loop in ask()...") break num_correct = len(correctAnswers) num_correct_by_user = countHowManyCorrect(user_inputs, correctAnswers) print(f"You have chosen: {user_inputs}") allCorrect = num_correct_by_user == num_correct feedbackMsg = f'{Terminal.paintFail("INCORRECT!")} Your result is: ' if allCorrect: feedbackMsg = f'{Terminal.paintGreen("CORRECT!")} Your result is: ' print(f"{feedbackMsg}{num_correct_by_user}/{num_correct}") if allCorrect or trials == max_trials: total_correct += num_correct total_correct_by_user += num_correct_by_user break else: trials += 1 if user_raw_input == 'quit': print("leaving for loop in ask()...") break print(Terminal.paintSummary(f"\nFinal score: {total_correct_by_user}/{total_correct}\n")) return user_raw_input
from model.Terminal import Terminal print(Terminal.paintHeader(Terminal.writeHeader('Welcome to the Quiz!'))) print('Options:') print('\t- To give a quiz, write "go"') print('\t- To exit, write "quit"') while True: user_input = input("Enter option: ") if user_input == 'quit': print(Terminal.paintFooter(Terminal.writeFooter('Exitting'))) break elif user_input == 'go': print(Terminal.paintBlue("Starting quiz...")) else: print(Terminal.paintFail("Invalid input, try again..."))