5 ответов:
разница в том, что
raw_input()не существует в Python 3.x, в то время какinput()делает. На самом деле, старыйraw_input()переименован вinput(), а старыйinput()ушел, но может быть легко смоделирован с помощьюeval(input()). (Помните, чтоeval()это зло, так что если попытаться использовать более безопасные способы разбора вашего ввода, если это возможно.)
В Python 2,
raw_input()возвращает строку, аinput()пытается запустить входные данные в виде выражения Python.так как получение строки было почти всегда то, что вы хотели, Python 3 делает это с
input(). Как говорит Свен, если вы когда-нибудь захотите старого поведения,eval(input())строительство.
Python 2:
raw_input()берет именно то, что пользователь вводит и передает его обратно в виде строки.
input()первым беретraw_input()а затем выполняетeval()на нем тоже.главное отличие в том, что
input()ожидает синтаксически корректный оператор python, гдеraw_input()нет.Python 3:
raw_input()была переименована вinput()теперьinput()возвращает строку.- старый .
если вы хотите использовать старый
input(), что означает, что вам нужно оценить пользовательский ввод как оператор python, вы должны сделать это вручную с помощьюeval(input()).
Я хотел бы добавить немного больше деталей к объяснению, предоставленному всеми для пользователи python 2.
raw_input(), который, к настоящему времени, вы знаете, что оценивает то, что когда-либо данные пользователь вводит в виде строки. Это означает, что python даже не пытается снова понять введенные данные. Все это будет учитывать, что введенные данные будут строкой, независимо от того, является ли это фактической строкой или int или чем-то еще.пока
input()С другой стороны пытается понять, данные вводится пользователем. Так что вход вродеhelloworldдаже покажет ошибку как'helloworld is undefined'.В заключение для python 2, чтобы ввести строку тоже нужно ввести его как'
helloworld' которая является общей структурой, используемой в python для использования строк.
Comments