SyntaxError | Learn Python The Hard Way


Joined
Jun 26, 2018
Messages
1
Reaction score
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
 
Ad

Advertisements

Joined
Jun 27, 2018
Messages
12
Reaction score
5
For your dictionaries, you need to enclose them in curly brackets {}, NOT square brackets [].
e.g.
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:
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):

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:

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. After that, you can post your question and our members will help you out.

Ask a Question

Top