2015-09-26 85 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,你實際上與列表name這是False從而打印wrong每次比較輸入new

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'