来自python列表的输入

2024-05-16 18:49:34 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我已经有了一个名称列表,如果用户输入的名称与列表中已有的名称不匹配,我想打印“错误”

我的代码:

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

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

当我输入'阿米尔'这个名字时,它会打印出'错误',尽管它在我的列表中


Tags: 代码用户name名称列表newinputraw
3条回答

必须将if new == name:替换为:

if new in name:

要检查元素是否在列表中,可以使用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'

与其将新名称等同于列表,不如检查它是否在列表中

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

相关问题 更多 >