Weird newbie question

John Gordon gordon at panix.com
Thu Jan 26 17:35:15 EST 2012


In <mailman.5138.1327615560.27778.python-list at python.org> Matty Sarro <msarro at gmail.com> writes:

> Hey everyone. I'm running into a funky error as I work through "Learn
> Python the Hard Way." What's weird is both idle and the python
> interpreter in idle spit out an error about syntax, but when I run the
> same script from the command line it works just fine, with no issue.
> I'm not sure if its an issue with IDLE or if I'm doing something
> wrong.

> Here's the book's code:

> from sys import argv
> script, filename = argv
> txt = open(filename)
> print "Here's your file %r:" % filename
> print txt.read()
> print "Type the filename again:"
> file_again = raw_input("> ")
> txt_again = open(file_again)
> print txt_again.read()

> Here's my code:

> from sys import argv
> script,filename=argv
> txt=open(filename)
> print "Here is your file %r:" % filename
> print txt.read()
> print "I'll also ask you to type it again:"
> file_again=raw_input("> ")
> txt_again=open(file_again)
> print txt_again.read()


> IDLE is saying that my error is on line 4, at the second set of
> quotation marks. Since I can't get the error from the command line, I
> can't actually see what the syntax error is that it's complaining
> about. Any advice would really be appreciated, thank you!!

This may be a Python version mismatch error.

In python version 2.x (and 1.x for that matter), "print" is a statement,
but it was changed to be a function in python version 3.x.

In other words, in python 2.x you can say this:

  print x
  print "hello there"

But in python 3.x you have to do it a little differently:

  print(x)
  print("hello there")

It sounds like your IDLE is running python 3, but your command line is
running python 2.

-- 
John Gordon                   A is for Amy, who fell down the stairs
gordon at panix.com              B is for Basil, assaulted by bears
                                -- Edward Gorey, "The Gashlycrumb Tinies"




More information about the Python-list mailing list