Not registered yet?
Register now! It is easy and done in 1 minute and gives you access to special discounts and much more!
Why do I receive a syntax error when printing a string in Python 3?
>>> print "hello World"
File "<stdin>", line 1
print "hello World"
SyntaxError: invalid syntax
You have to use brackets with print:
In Python 2.X print is a keyword, while in Python 3.X print becomes a function, so the correct way to do it is print(something).
You can get the list of keywords for each version by executing the following:
>>> import keyword
It looks like you're using Python 3.0, in which print has turned into a callable function rather than a statement.
In Python 3, print became a function. This means that you need to include parenthesis now like mentioned below:
In Python 3, you must do print('some code'). This is because in Python 3 it has become a function. If you must, you can use your Python 2 code and convert it to Python 3 code using 2to3 - it is a great built-in program which comes with Python. For more, see Python 2to3 - Convert your Python 2 to Python 3 automatically!.
In Python 3, it's print("something") , not print "something".
Because in Python 3, print statement has been replaced with a print() function, with keyword arguments to replace most of the special syntax of the old print statement. So you have to write it as
But if you write this in a programme and some one using Python 2.x tries to run, they will get an error. To avoid this, it is a good practice to import print function
from __future__ import print_function
Now you code works on both 2.x & 3.x
Check out below examples also to get familiar with print() function.
Old: print "The answer is", 2*2
New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!
Source: What’s New In Python 3.0?
It looks like you're using Python 3. In Python 3, print has been changed to a method instead of a statement. Try this:
In Python 3.0, print is a regular function that requires ():