繁体   English   中英

“打印”在 Python 3 中引发无效的语法错误

[英]"print" throws an invalid syntax error in Python 3

我是python的新手。 我一直在研究 Codecademy 的课程。 我目前也在使用 Pydev/LiClipse。

在 Codecademy 的第一堂课中,它希望您将变量 parrot 设置为“挪威蓝”。 然后它希望您使用 len 字符串方法打印鹦鹉的长度。 这很简单,我马上得到了答案:

parrot = "Norwegian Blue"
print len(parrot)

当我将完全相同的代码放入 LiClipse 时,它​​返回:

语法错误:无效语法

当我将其更改为以下内容时,它在 LiClipse 中工作:

打印(len(鹦鹉))

有人可以让我知道为什么这在 codecademy 中有效,但在 LiClipse 中无效,以及为什么添加括号修复了它?

听起来 Pydev/LiClipse 使用的是 Python 3,而 Codeacademy 使用的是 python 2.x 或其他一些旧版本。 python 从 2.x 更新到 3 时所做的更改之一是打印现在是一个函数。

蟒蛇2:

print "stuff to be printed"

蟒蛇3:

print("stuff to be printed")

您必须考虑您正在使用的版本。

在 Python 2 中,您的代码如下所示:

parrot = "Norwegian Blue"
print len(parrot)

在 Python 3 中,您的代码如下所示:

parrot = "Norwegian Blue"
print ( len(parrot) )

它在 CodeAcademy 中有效,因为他们的解释器是 Python 2.7,您不需要括号,因为print是一个语句。 在 Python 3.0+ 中, print需要括号,因为它是一个函数。

可以在此处找到有关 Python 2.7 和 3.0+ 之间不同之处的更多信息:

Python 3.0 中的新功能

与上页印刷品的一些示例差异:

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!

最好了解两者之间的区别,以防您使用遗留系统以及您的私人环境中的批次。 在 Python 2.7 及以下版本中, print()有效; 但是,省略() s 在 Python 3.0+ 中不起作用,因此最好养成使用它们进行打印的习惯。

Python 2.7 的生命周期预计将在 2020 年结束,因此无论如何您都有足够的时间。

在 Python 3 打印已更改为需要括号。 CodeAcademy 可能使用的是 Python 2,看起来您使用的是 Python 3。

https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function

从文档

Print 是一个函数 print 语句已替换为 print() 函数,并带有关键字参数来替换旧的 print 语句 (PEP 3105) 的大部分特殊语法。 例子:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM