Nov-28-2020, 05:58 PM
Ok so now i've managed to match using dictionaries but for some reason the dict_right_answers stops updating after the 2nd answer and keeps overwriting the last key.
Thoughts?
Thoughts?
def get_questions(): question = input("Enter your question: ") score = int(input("Enter question score: ")) try: if sum(scores + [score]) > 100: print("Score average is higher than 100") if len(question_list) > 0: question_list.pop() if len(scores) > 0: scores.pop() except ValueError: print("Use Numbers.") get_questions() question_list.append(question) scores.append(score) def get_answers(): global answer choice_number = 0 try: choice_number = int(input("Number of answers (Max 4)? ")) except ValueError: print("Please select [2-4]") try: if choice_number > 4 or choice_number < 2: print("Please select [2-4]") choice_number = 0 question_answers_global.clear() question_answers.clear() get_answers() except choice_number < 2 or choice_number > 4: print("Error") for ans in range(choice_number): answer = input(f"Answer #{ans + 1}: ") if len(answer) == 0: print("No empty answers.") get_answers() dict_answers[ans + 1] = answer answer_number.append(ans + 1) question_answers.append(answer) answers.clear() answers.append(choice_number) print(f"Number of answers: {answers[0]}") print(dict_answers) question_answers.clear() def get_right_answer(): right_answer = 0 try: right_answer = int(input("Right Answer #: ")) except ValueError: print("Value Error!") print(f"Your choice: {right_answer}") if 0 < right_answer <= answers[0]: sure = input("Are you sure? [Y/n]: ") if sure.lower() == "y": dict_right_answers[right_answer] = dict_answers[right_answer] print(f"Questions: {question_list}") print(f"Right Answers: {dict_right_answers}") print(f"Total Score: {sum(scores)}") elif sure.lower() == "n": get_right_answer() else: print("Please Select [Y/n]") get_right_answer() else: print(f"Please select 1-{answers}") get_right_answer() def main(): get_questions() get_answers() get_right_answer() def finish(): question_num = len(question_list) ask_continue = input("Do you wish to continue? [Y/n]: ") if ask_continue.lower() == "y": dict_answers.clear() answers.clear() main() finish() elif ask_continue.lower() == "n": print("\n\n==============RESULTS==============\n") print("#\t Question\t Answer\t\t Score") for i, a in zip(range(question_num), dict_right_answers.values()): print(f"{i+1}\t {question_list[i]}\t\t {a}\t\t {scores[i]}") i += 1 else: print("Please select [Y/n]") finish() if __name__ == "__main__": global answer scores = [] question_list = [] question_list_global_dict = {} question_answers = [] question_answers_global = [] answers = [] answer_number = [] right_answer_number = [] dict_answers = {} dict_right_answers = {} main() finish()