【问题标题】:How to stop unwanted message?如何阻止不需要的消息?
【发布时间】:2016-03-11 16:34:30
【问题描述】:

我的代码一直显示不需要的消息:

#Initializes variable to search array and gets user input
search = str(input('What is a dealer name?'))
#loop to perform search
for index in range(0,array):
#Outputs for search, depending on conditions 
    if (name[index]) == search:
        print(sales[index])
        print(comm[index])
    else:  
        print('Error') 

目标是搜索名称,然后显示该名称的销售额和佣金。如果没有名称,则应显示“错误”。

然而,结果是这样的:

What is a dealer name?j
1
0.05
Error

为什么总是出现错误?

【问题讨论】:

  • 什么是arrayname 是什么? sales 是什么? comm 是什么?
  • 可能是因为你有一个循环,第一次通过name[index] == search,第二次没有

标签: python arrays loops indexing


【解决方案1】:

我假设你只会找到一个结果,在这种情况下你可以使用 for 的 else 子句:

#Initializes variable to search array and gets user input
search = str(input('What is a dealer name?'))
#loop to perform search
for index in range(0,array):
#Outputs for search, depending on conditions 
    if (name[index]) == search:
        print(sales[index])
        print(comm[index])
        break
else:  
    print('Error') 

【讨论】:

    【解决方案2】:

    对于循环中的每个元素,您将查看该元素是否匹配,如果不匹配,则打印 Error。相反,如果在循环的所有迭代之后没有找到匹配项,您想打印Error

    使用列表的.index 方法在数组中查找索引可能会更好。如果您要搜索的东西不存在,它将引发ValueError,因此您也需要处理它:

    try:
        idx = name.index(search)
        print(sales[idx])
        print(comm[idx])
    except ValueError:
        print('Error')
    

    【讨论】:

      【解决方案3】:

      你不想搜索数组,它会很慢。最好使用字典。由于您不必迭代它,因此搜索速度更快。

      #Initializes variable to search array and gets user input
      
      dealerSales = {}
      dealerComm = {}
      
      dealerSales["DAVID"] = 50
      dealerComm["DAVID"] = 0.05
      
      dealerSales["GON"] = 100
      dealerComm["GON"] = 0.01
      
      search = raw_input('What is a dealer name?').strip()
      
      if search in dealerSales:
          print dealerSales[search]
          print dealerComm[search]
      else:
          print "Error"
      

      输出

      What is a dealer name? GON
      100
      0.01
      
      What is a dealer name? DAVID
      50
      0.05
      
      What is a dealer name? JOHN
      Error
      

      【讨论】:

        猜你喜欢
        • 2010-11-29
        • 2018-12-02
        • 1970-01-01
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        相关资源
        最近更新 更多