我目前正试图编写一个迭代序列(x)的代码,搜索用户输入的单词。异常发生甚至值是真的?
以下是代码。
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
i = -1
while True:
s = input("Enter a word to search: ")
if s != "Quit":
try:
while i < len(x):
i = x.index(s, i+1)
print("found at index", i)
except ValueError:
print("Not found")
i = -1
else:
break
print("Goodbye")
上面的代码通过迭代工作正常,但通过序列迭代后总是返回ValueError异常。我试图通过添加进行整治:
while i < len(x):
思维一旦到达序列末尾的迭代将停止,但继续从序列返回找到的值后抛出异常。
例如,如果用户输入“9”,什么是返回是:
found at index 8
Not found
谢谢!这个答案是完美的,像魅力一样工作。虽然我也通过改变'while(i
Keith
2013-04-25 21:25:20
实际上,第一种方法是完美的,但第二种方法对所有搜索产生-1索引的结果。 – Keith 2013-04-25 22:46:04
哪种方法? 'found'标志,列表理解用'enumerate()'或简单的'.index()'表示第一次匹配? – 2013-04-25 22:50:41