1. 程式人生 > >遞歸調用

遞歸調用

div 地板 遞歸調用 none 16px 有序列表 col inpu 找不到

 1 #二分法查找列表數
 2 def find_num(li,num,start=0,end=None):     # start和end 為系統默認參數
 3     end =len(li)if end is None else end #開始時如果end為None 則讓他為列表長度
 4     li_index=(end-start)//2+start           #計算中間值   //地板除取整
 5     if start<end:    #索引的開頭小於結尾
 6         if num<li[li_index]:
 7            return find_num(li,num,start=0,end=li_index-1)   #
如果結果比中間數小 結尾需要重新設置 8 if num>li[li_index]: 9 return find_num(li,num,start=li_index+1,end=end) #如果結果比中間數大,開頭需要重新設置 10 elif num==li[li_index]: #如果相等 則就是他 11 return li_index 12 else: #開頭大於結尾的序號 找不到這樣的數字 13 return 找不到這個數 14 15 li=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,51,53,59,61,67,71,73,79,83,89,97,101]
16 n=int(input(請輸入要查找的數)) 17 f=find_num(li,n) 18 print(f)

用遞歸查找列表元素,則必須為有序列表 從大到小 或者從小到大

遞歸調用