В чем разница между отпечатками в питоне:В чем разница между отпечатками в питона
print 'smth'
print('smth')
В чем разница между отпечатками в питоне:В чем разница между отпечатками в питона
print 'smth'
print('smth')
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
'print ('smth')' в python2 будет работать. Поскольку '('smth')' эквивалентно написанию '' smth''. –
@ LoïcFaure-Lacroix это не так. '('smth')' по-прежнему является строкой, но '('smth',)' является кортежем. – J0HN
@ J0HN вот что я сказал –
В 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 анализатор, а не действие печати:
>>> ((((('hello')))))
'hello'
Если кортеж, кортеж напечатал:
>>> print((((('hello',)))))
('hello',)
Вы можете получить функцию печати Python 3 в Python 2, импортируя его:
>>> print('a','b','c')
('a', 'b', 'c')
>>> from __future__ import print_function
>>> print('a','b','c')
a b c
PEP 3105 обсуждает изменения.
Никакой реальной разницы, первый - это своего рода синтаксический сахар. – gravetii
@gravetii: нет, второй работает только по совпадению, в большинстве случаев, в Python 2, где 'print' является выражением, а не функцией. Первый не является синтаксическим сахаром, это правильное использование. – geoffspear