【问题标题】:Input from the list for python来自 python 列表的输入
【发布时间】:2015-09-26 05:41:09
【问题描述】:
假设我已经有一个名称列表,如果用户输入的名称与列表中的名称不匹配,我想打印“错误”。
我的代码:
name = ['ali', 'abu', 'amir']
print name
new = raw_input( "enter name")
if new == name:
print "correct"
else:
print "wrong"
当我输入名称“amir”时,它会打印出“错误”,尽管它在我的列表中。
【问题讨论】:
标签:
python
arrays
list
input
【解决方案1】:
您必须将if new == name: 替换为:
if new in name:
【解决方案2】:
与其将新名称等同于列表,不如检查它是否在列表中。
print 'correct' if new in name else 'wrong'
【解决方案3】:
要检查一个元素是否在列表中,您可以使用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'