2015-09-26 4 views
0

Предполагая, что у меня уже есть список имен, я хочу напечатать «неправильно», если пользовательский ввод имени не совпадает с именем, уже имевшимся в списке.Ввод из списка для python

Мой код:

name = ['ali', 'abu', 'amir'] 
print name 

new = raw_input("enter name") 
if new == name: 
    print "correct" 
else: 
    print "wrong" 

Когда я ввести название «амир» будет печатать «неправильно», несмотря на то, что она находится в моем списке.

ответ

1

Вы должны заменить if new == name: с:

if new in name: 
0

Вместо приравнять новое имя в список, вам нужно проверить, если он находится в перечень .

print 'correct' if new in name else 'wrong' 
0

Чтобы проверить, что элемент находится в списке, вы можете использовать оператор in.

name = ['ali', 'abu', 'amir'] 
print name 

new = raw_input("enter name ") 
if new in name: # check 'new' is in the list 'name' 
    print "correct" 
else: 
    print "wrong" 

Что вы делали неправильно?

Когда вы делаете new==name, вы на самом деле сравнивать входные new со списком name, который False тем самым печати wrong каждый раз.

In [1]: name = ['ali', 'abu', 'amir'] 

In [2]: new = raw_input("enter name ") 
enter name abcd 

In [3]: new in name 
Out[3]: False 'abcd' is not in the list 'name' 

In [4]: new = raw_input("enter name ") 
enter name ali 

In [5]: new in name 
Out[5]: True # 'ali' is in the list 'name' 

In [6]: new==name 
Out[6]: False # Because comparing 'ali' with list 'name' 
Смежные вопросы