Как исправить NameError в функции input () в Python 3.x? - PullRequest
0 голосов
/ 16 января 2019

Я сейчас использую Python 3.7.2 в Windows 10. Я пытаюсь использовать этот код print('Hello'+input()), но он не работает. Когда я ввожу имя, скажем, John, после того, как Python напечатал «Hello», он выдает мне следующее сообщение об ошибке:

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
    John
NameError: name 'John' is not defined

Я пытался найти решения в Интернете, но большинство из них говорят о том, как input() должно быть raw_input() на Python 2.x, но я не смог найти никакого решения для Python 3.x. Любая помощь будет высоко ценится.

РЕДАКТИРОВАТЬ (добавить скриншот из комментария): enter image description here

1 Ответ

0 голосов
/ 17 января 2019

Из вашего снимка экрана , я думаю, вы просто неправильно его тестируете.

wrong

После ввода print('Hello'+input()) и нажатия клавиши Enter консоль уже находится в приглашении input() (в пустой строке) и ожидает вашего ввода. Но вместо этого вы снова нажали клавишу Enter , поэтому input() получает пустую строку и печатает "Hello"+"", которая просто печатает "Hello".

Когда вы набираете «Джон», он уже обрабатывается как следующая строка кода (обозначается >>>), который Python рассматривает как переменную и пытается вывести значение John но это явно не определено, в результате вы видите ошибку.

Правильный способ, после ввода print('Hello'+input()), просто набрать John в пустой строке, чтобы передать его input():

right

...