Почему функция/оператор/набор символов (или что оно на самом деле) print не может работать в выражениях?
Python 2.7.9 (default, Jun 29 2016, 13:08:31)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hahaha')
hahaha
>>> 0 or print('hahaha')
File "
Ответ
В Python 2.X print является ключевым словом (вроде return во многих языках), по этому после него выражение не обязательно должно быть заключено в скобки. И оно не является функцией и не может возвращать значения (даже None). По этому оно не может быть частью логического выражения:
0 or return("hahaha")
В Pyton 3.X это фнукция. По этому там требуется ее аргументы заключать в скобки, и она возвращает None (который в логическом контексте действует как False), по этому такое логическое выражение не вызовет ошибок.
Комментариев нет:
Отправить комментарий