[英]Return None in Python
我正在嘗試在 Python 中遞歸地編寫二進制搜索函數。 我只想根據搜索結果返回 True 或 False 。 在某些 True 情況下,我得到 None。 我不明白我的 for 循環有什么問題。
請幫幫我! 謝謝
def func(data, key):
'''
data: input list
key: the number to be searched
output: return Boolean
'''
low = 0
high = len(data)
mid = (low+high)//2
if(key>data[high-1]):
return False
if(data[mid]==key):
return True
elif(key>data[mid]):
search_sorted_rec(data[mid+1:high],key)
elif(key<data[mid]):
search_sorted_rec(data[low:mid],key)
data1=func((1,2,3,4,5,6,7,8),8)
print(data1) # I got None
你在做一個遞歸函數。 所以在遞歸調用中,你返回結果。 所以不是:
elif(key>data[mid]):
search_sorted_rec(data[mid+1:high],key)
但反而:
elif(key>data[mid]):
return search_sorted_rec(data[mid+1:high],key)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.