The program loops through all 50 states asking for the state capital.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | # State Capitals Game
import random
def main():
state_capitals={"Washington":"Olympia","Oregon":"Salem",\
"California":"Sacramento","Ohio":"Columbus",\
"Nebraska":"Lincoln","Colorado":"Denver",\
"Michigan":"Lansing","Massachusetts":"Boston",\
"Florida":"Tallahassee","Texas":"Austin",\
"Oklahoma":"Oklahoma City","Hawaii":"Honolulu",\
"Alaska":"Juneau","Utah":"Salt Lake City",\
"New Mexico":"Santa Fe","North Dakota":"Bismarck",\
"South Dakota":"Pierre","West Virginia":"Charleston",\
"Virginia":"Richmond","New Jersey":"Trenton",\
"Minnesota":"Saint Paul","Illinois":"Springfield",\
"Indiana":"Indianapolis","Kentucky":"Frankfort",\
"Tennessee":"Nashville","Georgia":"Atlanta",\
"Alabama":"Montgomery","Mississippi":"Jackson",\
"North Carolina":"Raleigh","South Carolina":"Columbia",\
"Maine":"Augusta","Vermont":"Montpelier",\
"New Hampshire":"Concord","Connecticut":"Hartford",\
"Rhode Island":"Providence","Wyoming":"Cheyenne",\
"Montana":"Helena","Kansas":"Topeka",\
"Iowa":"Des Moines","Pennsylvania":"Harrisburg",\
"Maryland":"Annapolis","Missouri":"Jefferson City",\
"Arizona":"Phoenix","Nevada":"Carson City",\
"New York":"Albany","Wisconsin":"Madison",\
"Delaware":"Dover","Idaho":"Boise",\
"Arkansas":"Little Rock","Louisiana":"Baton Rouge"}
incorrect_answers=[]
print "Learn your state capitals!\n\n"
while len(state_capitals)>0:
choice=random.choice(state_capitals.keys())
correct_answer=state_capitals.get(choice)
print "What is the capital city of",choice,"?"
answer=raw_input("# ")
if answer.lower()==correct_answer.lower():
print "That's Correct!\n"
del state_capitals[choice]
else:
print "That's Incorrect."
print "The correct answer is",correct_answer
incorrect_answers.append(choice)
print "You missed",len(incorrect_answers),"states.\n"
if incorrect_answers:
print "here's the ones that you may want to brush up on:\n"
for each in incorrect_answers:
print each
else:
print "Perfect!"
response=""
while response<>"n":
main()
response=raw_input("\n\nPlay again?(y/n)\n# ")
|
I would change incorrect_answers from [] to set(), and the append to add. Using a list will cause duplicates to appear if the user fails to get the same capitol right more than once.
Need more education oriented code out there... thanks for this.
make sure that the answer: 'Paris' == ' Paris ', by adding strip() answer.lower().strip()