2015-04-19 1 views
1
name = input(str('Please enter your name')) 
names= ('name1','name2','nameetc') 
if name in names: 
    print "hi",name 

Если я использую этот код и пользовательские входы name1, я получаю сообщение об ошибке name1 is not defined. Если пользователь ставит "name1" в кавычки, то он работает. Я могу попросить пользователя поместить имя в кавычки, но как я могу проверить, чтобы это было до продолжения. Предпочтительно, я бы попросил только имя. Если я заменю каждый str в списке с int, код работает нормально. Как мне заставить его работать с str в списке?Как проверить, содержит ли input/raw_input элемент в списке. Код Python

+1

Вы не должны обернуть ' 'Пожалуйста, введите ваш name'' с' ул() '- это строка уже. – alfasin

+0

http://stackoverflow.com/questions/21122540/python-input-error-nameerror-name-is-not-defined –

ответ

2

В python2 input оценивает строку, которую пользователь вводит. Поэтому, когда вы вводите name1, python пытается найти значение переменной name1. Переменная не существует, и вы получаете неопределенное исключение. Используйте raw_input вместо этого просто возвращает строку:

name = raw_input('Please enter your name') 
if name in ('name1', 'name2', 'nameetc'): 
    print "hi",name 
+0

Спасибо! Я знал, что это просто глупо. – Medullan

3

Вам необходимо использовать raw_input(). В Python 2 input() пытается оценить введенную строку.

Смежные вопросы