python中二分法查找数
def search(sequence,number,lower,upper):
if number not in sequence:
print("{}不在列表中".format(number))
exit(0)
if lower==upper:
assert number==sequence[upper]
return upper
else:
middle=(lower+upper)//2
if number>sequence[middle]:
return search(sequence,number,middle+1,upper)
else:
return search(sequence,number,lower,middle)
seq=[1,2,3,4,5,6,7,8,9,10]
print(search(seq,5,0,9))
顺便说明一下asserth函数
例:
a=1
assert a>0
如果a>0为真,则代码继续。否则退出程序!