2009-05-05 130 views
232

爲什麼在Python 3中打印字符串時收到語法錯誤?使用Python 3打印語法錯誤

>>> print "hello World" 
    File "<stdin>", line 1 
    print "hello World" 
        ^
SyntaxError: invalid syntax 
+15

提示:對於python 2.7+中的兼容性代碼,將其放入模塊的開頭:`from __future__ import print_function` – 2013-08-12 13:12:46

回答

314

在Python 3中,printbecame a function。這意味着,你現在需要包括括號類似下面:

print("Hello World") 
18

在Python 3.0,print是一個普通的功能,需要():

print("Hello world") 
15

它看起來像你使用Python 3,在Python 3,打印已改爲一個方法,而不是的聲明。試試這個:

print("hello World") 
16

在Python 3,這是print("something"),不print "something"

27

因爲在Python 3中,print statement已被替換爲print() function,其中用關鍵字參數替換了大部分舊的print語句的特殊語法。所以,你必須把它寫成

print("Hello World") 

但是,如果你寫這個程序中,有一種用Python 2.x的嘗試運行,他們會得到一個錯誤。爲了避免這種情況,這是一個很好的做法,導入打印功能

from __future__ import print_function 

現在你的代碼工作在兩個2.X & 3.X

看看下面的例子也讓熟悉print()函數。

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)! 

來源:What’s New In Python 3.0?

5

在Python 2.X printkeyword,而在Python 3.X print成爲一個功能,所以做正確的做法是print(something)

你可以通過執行獲得的關鍵字列表每個版本如下:

>>> import keyword 
>>> keyword.kwlist 
7

你必須使用支架與打印print("Hello World")

8

在Python 3中,您必須執行print('some code')。這是因爲在Python 3中它已經成爲一種功能。如果您必須,您可以使用Python 2代碼並使用2to3將其轉換爲Python 3代碼 - 這是一個內置於Python中的優秀程序。欲瞭解更多信息,請參閱Python 2to3 - Convert your Python 2 to Python 3 automatically!