我是python的新手。我一直在研究Codecademy的课程。我目前也在使用Pydev / LiClipse。
在Codecademy的第一课中,它希望您将变量parrot设置为“Norwegian Blue”。然后它希望你使用len字符串方法打印鹦鹉的长度。这很简单,我马上得到了答案:
parrot = "Norwegian Blue"
print len(parrot)
当我将完全相同的代码放入LiClipse时,它返回:
SyntaxError:语法无效
当我将其更改为:
时,它在LiClipse中工作print(len(parrot))
有人能让我知道为什么在codecademy中有效,但在LiClipse中没有,为什么添加括号会修复它?
答案 0 :(得分:3)
听起来Pydev / LiClipse正在使用python 3,而Codeacademy正在使用python 2.7或其他一些旧版本。当python从2.7更新到3时所做的更改之一是使用这样的打印:
print "stuff to be printed"
为:
print("stuff to be printed")
答案 1 :(得分:3)
您必须考虑到您工作的版本。
在Python 2中,您的代码如下所示:
parrot = "Norwegian Blue"
print len(parrot)
在Python 3中,您的代码如下所示:
parrot = "Norwegian Blue"
print ( len(parrot) )
答案 2 :(得分:2)
它在CodeAcademy中有效,因为它们的解释器是Python 2.7,你不需要括号,因为print
是一个声明。在Python 3.0+中,print
需要括号,因为它是一个函数。
可以在此处找到有关Python 2.7和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()
有效;但是,省略()
在Python 3.0+中不起作用,所以养成使用它们进行打印的习惯会更好。
Python 2.7的生命周期预计将在2020年结束,所以无论如何你都有充足的时间。
答案 3 :(得分:1)
在Python 3中,print更改为需要括号。 CodeAcademy可能正在使用Python 2,看起来你正在使用Python 3。
https://docs.python.org/3/whatsnew/3.0.html#print-is-a-function
来自文档
打印是一种功能 print语句已被替换为 print()函数,用关键字参数替换大部分 旧打印语句的特殊语法(PEP 3105)。例子: