python中打印的区别是什么:
print 'smth'
print('smth')
答案 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中,它是一个函数。