Welcome, guest | Sign In | My Account | Store | Cart

The program loops through all 50 states asking for the state capital.

Python, 65 lines
 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# ")

3 comments

Gary Eakins 12 years, 6 months ago  # | flag

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.

Dennis Gibson Daniels 12 years, 3 months ago  # | flag

Need more education oriented code out there... thanks for this.

Boubakr 10 years, 7 months ago  # | flag

make sure that the answer: 'Paris' == ' Paris ', by adding strip() answer.lower().strip()