首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的变量打印

python中的变量打印
EN

Stack Overflow用户
提问于 2012-09-19 12:06:28
回答 2查看 161关注 0票数 1

我是Python的新手,我正在尝试声明一个变量并打印它的值。

这是我的代码:

代码语言:javascript
复制
#!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“。为什么会发生这种情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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使这一点变得明确和必需

代码语言:javascript
复制
from __future__ import print_function

print作为函数会导致其他一些差异,因为在Python3中,您可以将变量设置为指向print,或者将其作为参数传递给函数:

代码语言:javascript
复制
a = print
a('magic') # prints 'magic'

def add_and_call(func, num):
    num += 1
    func(num)

add_and_call(print, 1) # prints 2
票数 4
EN

Stack Overflow用户

发布于 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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12488403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档