使用Python 3打印时出现语法错误

Syntax error on print with Python 3

本问题已经有最佳答案,请猛点这里访问。

在Python3中打印字符串时,为什么会收到语法错误?

1
2
3
4
5
>>> print"hello World"
  File"<stdin>", line 1
    print"hello World"
                      ^
SyntaxError: invalid syntax


在python3中,print成为一个函数。这意味着您需要包括括号,如下所述:

1
print("Hello World")

看起来您使用的是python3.0,其中print已经变成了一个可调用函数,而不是一个语句。

1
print('Hello world!')


因为在python 3中,print statement被替换为print() function,用关键字参数替换旧print语句的大部分特殊语法。所以你必须把它写成

1
print("Hello World")

但是,如果您在一个程序中编写这个代码,并且有人使用python2.x试图运行它,那么它们将得到一个错误。为了避免这种情况,导入打印功能是一个很好的实践

1
from __future__ import print_function

现在,代码在2.x和3.x上都有效

还可以查看下面的示例以熟悉print()函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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)!

源:Python3.0有什么新功能?


在Python3.0中,print是一个需要()的常规函数:

1
print("Hello World")

在python3中,它是print("something"),而不是print"something"


看起来您使用的是python3。在Python3中,print已更改为方法而不是语句。试试这个:

1
print("Hello World")


在python 3中,必须执行print('some code')。这是因为在Python3中,它已经成为一个函数。如果必须这样做,您可以使用python 2代码,并使用2to3将其转换为python 3代码—这是一个伟大的内置程序,与python一起提供。有关更多信息,请参见python 2to 3-自动将python 2转换为python 3!.


您必须在打印时使用括号:

1
print("Hello, World!")

在python 2.x中,print是一个关键字,而在python 3.x中,print是一个函数,所以正确的方法是print(something)

您可以通过执行以下操作来获取每个版本的关键字列表:

1
2
>>> import keyword
>>> keyword.kwlist