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