Я добавлю свои мысли по этому поводу:
В Python 2.x print
не является ошибочным утверждением, или потому что печать в stdout
является такой простой вещью, которую нужно сделать.Все остальное настолько продумано или имеет, по крайней мере, понятные причины, что ошибка этого порядка показалась бы странной.Если бы общение с stdout
было бы настолько простым, общение с stdin
должно быть таким же важным, но input()
- это функция.
Если вы посмотрите на список Зарезервированные ключевые слова и список операторов , которые не являются выражениями, явно выделяется print
, что является еще одним намеком на то, что должны быть очень конкретные причины.
Я думаю print
должен был быть выражением, а не выражением, чтобы избежать нарушения безопасности в input()
.Помните, что input()
в Python2 оценивает все, что пользователь вводит в stdin
.Если пользователь, набравший print a
и a
, содержит список всех паролей, это будет катастрофически катастрофически.
Очевидно, способность input()
оценивать выражения считалась более важной, чем print
.обычная встроенная функция.