python中的打印有什么区别

时间:2014-02-05 15:22:50

标签: python

python中打印的区别是什么:

print 'smth'
print('smth')

3 个答案:

答案 0 :(得分:6)

print在python 3中成为一个函数(而在它之前是一个语句),所以你的第一行是python2样式,后者是python3样式。

具体来说,在python2中,使用()打印打算打印一个元组:

In [1414]: print 'hello', 'kitty'
hello kitty

In [1415]: print ('hello', 'kitty')
('hello', 'kitty')

In [1416]: print ('hello') #equals: print 'hello', 
                           #since "()" doesn't make a tuple, the commas "," do
hello

在python3中,没有()的打印给出了一个SyntaxError:

In [1]: print ('hello', 'kitty')
hello kitty

In [2]: print 'hello', 'kitty'
  File "<ipython-input-2-d771e9da61eb>", line 1
    print 'hello', 'kitty'
                ^
SyntaxError: invalid syntax

答案 1 :(得分:4)

在python 3中,print是一个函数。

>>> print('a','b','c')
a b c

在Python 2中,print是一个功能更为有限的关键字:

>>> print 'a','b','c' 
a b c

虽然print()适用于Python 2,但它并没有按照您的想法行事。如果有多个元素,它会打印一个元组:

>>> print('a','b','c')
('a', 'b', 'c')

对于单元素括号表达式的有限情况,将删除括号:

>>> print((((('hello')))))
hello

但这只是Python表达式解析器的操作,而不是print的操作:

>>> ((((('hello')))))
'hello'

如果是元组,则会打印元组:

>>> print((((('hello',)))))
('hello',)

您可以通过导入Python 2获取Python 3打印功能:

>>> print('a','b','c')
('a', 'b', 'c')
>>> from __future__ import print_function
>>> print('a','b','c')
a b c

PEP 3105讨论了这一变化。

答案 2 :(得分:0)

您可以在Python 2和3 print中使用括号,但是在Python 3中必须使用括号。

Python 2:

print "Hello"

或:

print("Hello")

而在Python 3中:

print "Hello"

给你这个:

  File "<stdin>", line 1
    print "Hello"
                ^
SyntaxError: Missing parentheses in call to 'print'

所以您需要这样做:

print("Hello")  

问题是,在Python 2中,print是一个语句,但是在Python 3中,它是一个函数。