簡體   English   中英

在 Python 中返回 None

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM