#! python3 # randomQuizGenerator.py - Creates quizzes with questions and answers in # random order, along with the answer key. import random # The quiz data. Keys are states and values are their capitals. capitals = {'Alabama': 'Montgomery', 'Alaska': 'Juneau', 'Arizona': 'Phoenix', 'Arkansas': 'Little Rock', 'California': 'Sacramento', 'Colorado': 'Denver', 'Connecticut': 'Hartford', 'Delaware': 'Dover', 'Florida': 'Tallahassee', 'Georgia': 'Atlanta', 'Hawaii': 'Honolulu', 'Idaho': 'Boise', 'Illinois': 'Springfield', 'Indiana': 'Indianapolis', 'Iowa': 'Des Moines', 'Kansas': 'Topeka', 'Kentucky': 'Frankfort', 'Louisiana': 'Baton Rouge', 'Maine': 'Augusta', 'Maryland': 'Annapolis', 'Massachusetts': 'Boston', 'Michigan': 'Lansing', 'Minnesota': 'Saint Paul', 'Mississippi': 'Jackson', 'Missouri': 'Jefferson City', 'Montana': 'Helena', 'Nebraska': 'Lincoln', 'Nevada': 'Carson City', 'New Hampshire': 'Concord', 'New Jersey': 'Trenton', 'New Mexico': 'Santa Fe', 'New York': 'Albany', 'North Carolina': 'Raleigh', 'North Dakota': 'Bismarck', 'Ohio': 'Columbus', 'Oklahoma': 'Oklahoma City', 'Oregon': 'Salem', 'Pennsylvania': 'Harrisburg', 'Rhode Island': 'Providence', 'South Carolina': 'Columbia', 'South Dakota': 'Pierre', 'Tennessee': 'Nashville', 'Texas': 'Austin', 'Utah': 'Salt Lake City', 'Vermont': 'Montpelier', 'Virginia': 'Richmond', 'Washington': 'Olympia', 'West Virginia': 'Charleston', 'Wisconsin': 'Madison', 'Wyoming': 'Cheyenne'} # Generate 35 quiz files for quizNum in range(35): # Create the quizz and answer key files quizFile = open('capitalsquiz%s.txt' % (quizNum + 1), 'w') answerKeyFile = open('capitalsquiz_answers%s.txt' % (quizNum + 1), 'w') # Write out the header for the quiz. quizFile.write('Name:\n\nDate:\n\nPeriod:\n\n') quizFile.write((' ' * 20) + 'State Capitals Quiz (Forms %s)' % (quizNum + 1)) quizFile.write('\n\n') # Shuffle the order of the states. states = list(capitals.keys()) random.shuffle(states) # Loop through all 50 states, making a question for each. for questionNum in range(50): # Get right and wrong answers correctAnswer = capitals[states[questionNum]] wrongAnswers = list(capitals.values()) del wrongAnswers[wrongAnswers.index(correctAnswer)] wrongAnswers = random.sample( wrongAnswers ,3) answerOptions = wrongAnswers + list(correctAnswer) random.shuffle(answerOptions) # Write the question and the answer options to the quiz file. quizFile.write('{}{What is the capital of %s?\n'}'.format('questionNum+1', states[questionNum])) for i in range(4): quizFile.write('{}{}'.format('ABCD'[i], answerOptions[i])) quizFile.write('\n') # Write the answer key to a file. answerKeyFile.write('{}{}\n'.format(questionNum + 1, 'ABCD'[answerOptions.index(correctAnswer)])) quizFile.close() answerKeyFile.close()I know that this program must have several errors but let's start with the first one:
Error:C:\Python36\kodovi>randomquizgenerator.py
File "C:\Python36\kodovi\randomQuizGenerator.py", line 50
quizFile.write('{}{What is the capital of %s?\n'}'.format('questionNum+1', st
ates[questionNum]))
^
SyntaxError: invalid syntax
In line 50 I'm not sure how to add name of state to the question by using .format()
.It should look smth like "What is the capital of Alabama?".