Thank you all for your help! I have a text today but I am not confident with this. So basically, what I did wrong was the indentation?
Thanks Stephanie Quiles Sent from my iPhone > On Jun 2, 2015, at 10:15 AM, Peter Otten <__pete...@web.de> wrote: > > ZBUDNIEWEK. JAKUB wrote: > >> I'm a newbie, but was able to tune it to correctly reply to user inputs. > >> 2. Why (on Windows) do I have to give inputs in quotes not to cause an >> error (for ll input the error is ' NameError: name 'll' is not defined')? > > If you are running the script under Python 2 you should use > raw_input() instead of input(). input() will take the user input and also > run eval() on it: > > Python 2.7.6 (default, Mar 22 2014, 22:59:56) > [GCC 4.8.2] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> input("? ") > ? 1 + 1 > 2 >>>> raw_input("? ") > ? 1 + 1 > '1 + 1' > > Python 3 has no raw_input() and input() will behave like raw_input() in > Python 2. > >> 1. My question is can it be optimized in any way? > > In Python 2 capital.keys() builds a list. You can avoid that by iterating > over the dict directly: > > for k in capitals: > ... > > Not an optimization, but if the user enters neither Y nor N you might ask > again instead of assuming Y. > > >> def main(): >> >> right = 0 >> wrong = 0 >> 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'} >> >> for k in capitals.keys(): >> state = input('Enter the capital of '+k+' :') >> if state.upper() == capitals[k].upper(): >> right += 1 >> print('Correct') >> else: >> wrong += 1 >> print('Incorrect') >> choice = input('Do you want to play again y/n: ') >> if choice.upper() == 'N': >> print('end of game') >> break >> elif choice.upper() != 'Y': >> print("invalid choice") >> >> print('Number of correct answers is: ', right) >> print("Number of incorrect answers is:", wrong) >> >> main() >> >> Regards, >> Jakub > > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor