i am learning python and am following a tutorial the current lesson has us creating a quiz game and instead of making the game static i wanted to make it so the order in which the answers to each question where given is random so i wrote some code. But it seems terribly inefficient and was wondering if some more experienced coders could help me analyze and see what i could have done better. its python 3 btw
import random
def random_letter(possible_answers):
x = random.choice(possible_answers)
return x
def random_question(q_correct,q_incorrect,answer):
templist = []
if answer == 'a':
templist =[]
templist2=[0,1,2]
templist3=['B: ','C: ', 'D: ']
templist.insert(0,'A: '+q_correct)
for i in range(3):
x = random.choice(templist2)
templist2.remove(x)
templist.append(templist3[i]+q_incorrect[x])
if answer == 'b':
templist =[]
templist2=[0,1,2]
templist3=['A: ','C: ','D: ']
for i in range(3):
x = random.choice(templist2)
templist2.remove(x)
templist.append(templist3[i]+q_incorrect[x])
templist.insert(1, 'B: ' + q_correct)
if answer == 'c':
templist =[]
templist2=[0,1,2]
templist3=['A: ','B: ', 'D: ']
for i in range(3):
x = random.choice(templist2)
templist2.remove(x)
templist.append(templist3[i]+q_incorrect[x])
templist.insert(2, 'C: ' + q_correct)
if answer == 'd':
templist =[]
templist2=[0,1,2]
templist3=['A: ','B: ', 'C: ']
for i in range(3):
x = random.choice(templist2)
templist2.remove(x)
templist.append(templist3[i]+q_incorrect[x])
templist.insert(3,'D: '+q_correct)
return templist
possible_answers = ['a','b','c','d']
questions = {
"who created Python?" :random_letter(possible_answers),
"What year was python created":random_letter(possible_answers),
"Python is tributed to which comedy group":random_letter(possible_answers),
"Is the Earth Round":random_letter(possible_answers)
}
templist = []
for value in questions.values():
templist.append(value)
q1_correct = "Guido van Rossum"
q1_incorrect = ["Elon Musk", "Bill Gates","Mark Zuckerburg"]
q2_correct = "1991"
q2_incorrect = ['1989','2000','2016']
q3_correct = 'Monty Python'
q3_incorrect = ['Lonely Island', 'Smosh',"SNL"]
q4_correct = 'True'
q4_incorrect =['False','sometimes','the f*cks wrong with u']
q1_list = random_question(q1_correct,q1_incorrect,templist[0])
q2_list = random_question(q2_correct,q2_incorrect,templist[1])
q3_list = random_question(q3_correct,q3_incorrect,templist[2])
q4_list = random_question(q4_correct,q4_incorrect,templist[3])
final_questions = [q1_list,q2_list,q3_list,q4_list]
print(q1_list,q2_list,q3_list,q4_list)