SyntaxError | Learn Python The Hard Way

Discussion in 'Python' started by Lewis Murray, Jun 26, 2018.

  1. Lewis Murray

    Lewis Murray

    Joined:
    Jun 26, 2018
    Messages:
    1
    Likes Received:
    0
    Hi, I'm new to this forums.
    I'm currently learning python from LPTHW and i'm getting this SyntaxError on ex39.py
    python ex39.py

    File "ex39.py", line 3
    "Oregon":"OR",
    ^
    SyntaxError: invalid syntax

    here is my code.
    # create a mapping of state to abreviation
    states = [
    "Oregon":"OR",
    "Florida": "FL",
    "California": "CA",
    "New York": "NY",
    "Michigan": "MI"
    ]

    # create a basic set of states and some cities in them
    cities = [
    "CA": "San Francisco",
    "MI": "Detroit",
    "FL": "Jacksonville"
    ]

    # add some more cities
    cities["NY"] = "New York"
    cities["OR"] = "Portland"

    #print out some cities
    print "-" * 10
    print "NY state has: ", cities["NY"]
    print "OR state has: ", cities["OR"]

    # print some states
    print "-" * 10
    print "Michigan's abbreviation is: ", states["Michigan"]
    print "Florida's abbreviation is: ", states["Florida"]

    # do it by using the states then cities dict
    print "-" * 10
    print "Michigan has: ", cities[states["Michigan"]]
    print "Florida has: ", cities[states["Florida"]]

    # print every state abreviation
    print "-" * 10
    for state, abbrev in states.items():
    print "%s is abbreviated %s", % (state, abbrev)

    # print every city in state
    print "-" * 10
    for abbrev, city in cities.items():
    print "%s has the city %s" % (abbrev, city)

    # now do both at the same time
    print "-" * 10
    for state, abbrev in states.items():
    print "%s state is abbreviated %s and has city %s" % (
    state, abbrev, cities[abbrev])

    print "-" * 10
    # safely get an abreviation by state that might not be there
    state = states.get("Texas", None)

    if not state:
    print "Sorry, no Texas."

    # get a city with a default value
    city = cities.get("TX", "Does Not Exist")
    print "The city for the state 'TX' is: %s" % city
     
    Lewis Murray, Jun 26, 2018
    #1
    1. Advertisements

  2. Lewis Murray

    JasKinasis

    Joined:
    Jun 27, 2018
    Messages:
    7
    Likes Received:
    3
    Location:
    /dev/null
    For your dictionaries, you need to enclose them in curly brackets {}, NOT square brackets [].
    e.g.
    Code (Python):

    # create a mapping of state to abreviation
    states = {
    "Oregon": "OR",
    "Florida": "FL",
    "California": "CA",
    "New York": "NY",
    "Michigan": "MI"
    }
     
    Also, in the print statement in the block of code under the "#print every state abbreviation" comment:
    Code (Python):
    print "%s is abbreviated %s", % (state, abbrev)
    There is a rogue comma , before the %(state, abbrev) part at the end of the line.

    Other than that, the code looks good to me.

    Here's how your code should look (inside code tags and with fixes applied):

    Code (Python):

    #!/usr/bin/env python2

    # create a mapping of state to abreviation
    states = {
    "Oregon": "OR",
    "Florida": "FL",
    "California": "CA",
    "New York": "NY",
    "Michigan": "MI"
    }

    # create a basic set of states and some cities in them
    cities = {
    "CA": "San Francisco",
    "MI": "Detroit",
    "FL": "Jacksonville"
    }

    # add some more cities
    cities["NY"] = "New York"
    cities["OR"] = "Portland"

    #print out some cities
    print "-" * 10
    print "NY state has: ", cities["NY"]
    print "OR state has: ", cities["OR"]

    # print some states
    print "-" * 10
    print "Michigan's abbreviation is: ", states["Michigan"]
    print "Florida's abbreviation is: ", states["Florida"]

    # do it by using the states then cities dict
    print "-" * 10
    print "Michigan has: ", cities[states["Michigan"]]
    print "Florida has: ", cities[states["Florida"]]

    # print every state abreviation
    print "-" * 10
    for state, abbrev in states.items():
        print "%s is abbreviated %s" % (state, abbrev)

    # print every city in state
    print "-" * 10
    for abbrev, city in cities.items():
        print "%s has the city %s" % (abbrev, city)

    # now do both at the same time
    print "-" * 10
    for state, abbrev in states.items():
        print "%s state is abbreviated %s and has city %s" % (
        state, abbrev, cities[abbrev])

    print "-" * 10
    # safely get an abreviation by state that might not be there
    state = states.get("Texas", None)

    if not state:
        print "Sorry, no Texas."

    # get a city with a default value
    city = cities.get("TX", "Does Not Exist")
    print "The city for the state 'TX' is: %s" % city
     
    I hope this has helped!

    P.S.
    For future reference, please use code tags when posting code here.

    There are two ways of adding code-tags to your post.
    1. Graphically
    By clicking on the 'insert' button on the toolbar, it's the icon to the left of the floppy disk icon (load/save draft button)
    This will pop up a dialog, where you can paste your code, there is also a drop-down that will allow you to select the language. In this case, you'd select "python", but if the language you are using is not in the list, then select the "general code" option.

    2. Manually.
    To manually post code tags, you'd write them like this:

    [code=language]
    // Paste your code here
    [/code]

    Where language is the programming language being used.

    Posting code inside code tags makes your code more readable on the site, because the syntax is highlighted and the formatting and indentation of the code is preserved.
     
    Last edited by a moderator: Jun 28, 2018
    JasKinasis, Jun 28, 2018
    #2
    Ian likes this.
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.