Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Python. Чем на самом деле является print?

#python #python_2x #print #expressions


Почему функция/оператор/набор символов (или что оно на самом деле) 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 "", line 1
    0 or print('hahaha')
             ^
SyntaxError: invalid syntax
>>> def test(): print('hahaha')
... 
>>> 0 or test()
hahaha
>>> 

    


Ответы

Ответ 1



В Python 2.X print является ключевым словом (вроде return во многих языках), по этому после него выражение не обязательно должно быть заключено в скобки. И оно не является функцией и не может возвращать значения (даже None). По этому оно не может быть частью логического выражения: 0 or return("hahaha") В Pyton 3.X это фнукция. По этому там требуется ее аргументы заключать в скобки, и она возвращает None (который в логическом контексте действует как False), по этому такое логическое выражение не вызовет ошибок.

Комментариев нет:

Отправить комментарий