我的代码一直显示不需要的消息:
#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
为什么错误一直出现?
答案 0 :(得分:0)
对于循环中的每个元素,您要查看该元素是否匹配,如果不匹配,则打印Error
。相反,如果在循环的所有迭代后没有找到匹配项,则需要打印Error
。
使用列表的.index
方法在数组中找到索引可能会更好。如果你要搜索的东西不存在,它会引发ValueError
,所以你也需要处理它:
try:
idx = name.index(search)
print(sales[idx])
print(comm[idx])
except ValueError:
print('Error')
答案 1 :(得分:0)
我假设您只会找到一个结果,在这种情况下,您可以使用for的子句:
#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 :(得分:0)
你不想搜索数组,它会很慢。最好将使用字典。因为,您不必迭代它,搜索速度会更快。
#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