python学习-二分查找

hcwei 2020年06月10日 338次浏览
#定义需要查找的列表
DATA=range(100000)

#二分查找主函数
def find(datanum,findnum):
    datalen=len(datanum)
    midnum=datalen//2
    mid=datanum[midnum]
    if mid == findnum:
        print("找到",mid)
        exit()
    elif mid > findnum:
        print("大了",mid)
        return find(datanum[0:midnum],findnum)
    else:
        print("小了",mid)
        return find(datanum[midnum:],findnum)

#判断输入是否为数字然后执行程序
while True:
  x=input("请输入您要查找的数字:")
  if x.isdigit() and int(x) in DATA:
     find(DATA,int(x)) 
  else: 
     print("\033[31m请输入100000以内的整数!!!\033[0m\n") 
     continue