Ошибка при попытке ввода в консоли Python

Когда я положил

input('Enter your name please: ')

В консоли не появляется диалоговое окно, просто>? где я набираю слово, то такое и происходит. https://imgur.com/lQDIutR

Извините, если это очевидно, я частично изучил C++, затем переключился на этот, и он кажется таким другим и чужим, что я довольно легко заблудился.

Обновлено: я использую IDE PyCharm.

Какое содержание у вас в строке 1?

Marcus.Aurelianus 26.07.2018 07:29

a = input ('Пожалуйста, введите свое имя:')

Theroarx 26.07.2018 07:31

Извините, но я не могу указать вашу ошибку ...

Marcus.Aurelianus 26.07.2018 07:33

какую версию Python вы используете?

Srini 26.07.2018 07:33

@Theroarx см. Мой ответ. Вероятно, это потому, что вы используете python 2.7.

user2906838 26.07.2018 07:35

Вы используете Python 2, где вам следует использовать raw_input вместо input. А еще лучше использовать Python 3

juanpa.arrivillaga 26.07.2018 07:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
6
2 067
2

Ответы 2

Я думаю, что вы используете Python 2.7, поэтому вы видите ошибку.

Итак, вот деталь:

Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> input('Enter your name please: ')
Enter your name please: hi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'hi' is not defined

Однако, если вы обязательно цитируете свой ввод во время набора текста, это сработает.

>>> input('Enter your name please: ')
Enter your name please: "My name is" 
'My name is'
>>> 

Это та же самая консоль, и теперь она отлично работает. Это ожидаемое поведение python2. Однако, если вы сделаете то же самое в python3, он будет работать нормально.

Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> input('Enter your name please: ')
Enter your name please: hi
'hi'
>>> 

Вам не нужно заключать строковый ввод в кавычки в python3. Таким образом, вам нужно заключить строку в кавычки в ответе на ввод.

В Python 2.7 вам нужно использовать raw_input() вместо input(), чтобы то, что вы вводите, не оценивалось как выражение Python.

>>> input('Enter your name please: ')
Enter your name please: hi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in <module>
NameError: name 'hi' is not defined
>>> raw_input('Enter your name please: ')
Enter your name please: hi
'hi'
>>>

Другие вопросы по теме