import time flag = True def timer_out(flag): def timer(f): def inner(*args,**kwargs): if flag: start = time.time() ret = f(*args,**kwargs) print("耗时:%s"%(time.time() - start)) return ret else: ret = f(*args, **kwargs) return ret return inner return timer @timer_out(flag) def binary_search(iter_obj,search_data): high = len(iter_obj) - 1 low = 0 cnt = 1 while low <= high: middle = (low+high) // 2 print(f"{high},{middle},{low}") if iter_obj[middle] == search_data: return cnt elif iter_obj[middle] > search_data: high = middle - 1 else: low = middle + 1 cnt += 1 else: return "no_match" ret = binary_search(range(100),111) print(ret) @timer_out(flag) def fun(iter_obj,s_data): cnt = 0 for i in iter_obj: if i == s_data: return cnt cnt += 1 else: return "no_match" ret = fun(range(100),111111111) print(ret)