我是Python的新手,我正在尝试声明一个变量并打印它的值。
这是我的代码:
#!C:\Python32\python.exe
import sys
import os
import cgi
import cgitb
cgitb.enable()
a = 5
print(a)-------------------------> My doubt is in this line但是我的一个朋友把这行写成了print a。在他的Python中,它正在打印该值,但在我的例子中,它显示为"Invalid Syntax“。为什么会发生这种情况?
发布于 2012-09-19 12:07:57
由于您是在Python3中使用print is a function,所以您将其称为:print(a)。在Python2(你的朋友正在使用的)中,你可以去掉括号,直接把它叫做:print a,但这在将来是行不通的,所以your way是正确的。
此外,您的版本(print(a))可以在Python3和Python2上运行,因为只要它们匹配,多余的括号就会被忽略。我建议始终使用Python3样式编写它,因为它在这两种样式中都有效。您可以通过使用(有点神奇的) __future__ module使这一点变得明确和必需
from __future__ import print_function将print作为函数会导致其他一些差异,因为在Python3中,您可以将变量设置为指向print,或者将其作为参数传递给函数:
a = print
a('magic') # prints 'magic'
def add_and_call(func, num):
num += 1
func(num)
add_and_call(print, 1) # prints 2发布于 2012-09-19 12:08:30
在Python2中,print不是一个函数,而是一个关键字。因此,括号无关紧要,print 'foo'与print('foo')一起工作。
Python3把print变成了一个函数,这个函数必须用参数print('foo')来调用。将其称为print 'foo'将不再起作用。
由于在使用print作为关键字时出现错误,因此您使用的是Python3。您必须使用print作为函数,就像您所做的那样。您的朋友正在使用Python 2,它可以双向工作。
Python3和Python2很相似,但如果您计划与使用不同版本Python的人合作,则应该了解一些主要差异:http://docs.python.org/py3k/whatsnew/3.0.html
https://stackoverflow.com/questions/12488403
复制相似问题