В Python 2.x input ()
ожидает что-то, что является выражением Python, что означает, что если вы наберете d
, он интерпретирует это как переменную ] по имени д. Если вы наберете «d»
, то все будет в порядке.
То, что вам, вероятно, действительно нужно для 2.x, - это raw_input ()
, который возвращает введенное значение в виде необработанной строки, а не оценивает его.
Поскольку у вас такое поведение, похоже, вы используете версию интерпретатора Python 2.x - вместо этого я бы пошел на www.python.org и загрузил Python 3.x, чтобы он соответствовал книге, которую вы используете.
Вы, вероятно, используете Python 2.x, где input
будет eval
пользовательский ввод. Только в Python 3.x input ()
возвращает необработанный пользовательский ввод.
Вы можете проверить версию Python, запустив python
в консоли, например это Python 2.6:
~$ python
Python 2.6.5 (r265:79063, Apr 5 2010, 00:18:33)
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Вы можете запустить определенную версию Python (например, 3.1) с помощью python3.1
:
~$ python3.1
Python 3.1.1 (r311:74480, Jan 25 2010, 15:23:53)
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
В Python 3.0 и выше, чему учит книга, которую вы используете, input ()
делает то, что raw_input ()
в Python 2, так что в этом случае код будет правильным; однако похоже, что вы используете старую версию Python (2.6?).
Я бы порекомендовал зайти на сайт Python и вместо этого загрузить последнюю версию Python 3, чтобы вам было легче читать книгу.
Непосредственная проблема, учитывая, что вы используете Python 2, заключается в том, что вы используете input ()
, который оценивает все, что вы ему передаете. Что вы хотите сделать, так это получить необработанную строку, которую вводит пользователь:
Name = raw_input("What is your Name? ")
Между Python 3.x и 2.x есть много небольших различий, поэтому обязательно приобретите последнюю версию Python 3, если вы хотите продолжать использовать Python 3 для абсолютных новичков .