线性搜索不起作用

时间:2016-03-03 18:51:02

标签: python python-3.x binary binary-search linear

我正在尝试创建二进制搜索

L = [0, 1, 2]; X= 3;i=0
while (L[i]!= X)and (i < len(L)):
    i = i+1
if i==len(L):
    print('Not here!')
else:
    print(X, 'at position', i)

但是我的while循环和IndexError存在问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

and语句是short-circuit operator,因此如果LHS上的参数为True,它仅评估RHS上的参数。在您的情况下,这会创建索引错误。交换条件的顺序,您的代码将完美运行:

L = [0, 1, 2]; X= 3;i=0
while (i < len(L)) and (L[i]!= X):
    i = i+1
    if i==len(L):
        print('Not here!')
    else:
        print(X, 'at position', i)