【问题标题】: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'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-12-30
          • 1970-01-01
          • 2021-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多