小编use*_*001的帖子

Python递归函数不返回

我正在尝试编写一个递归函数,该函数返回单词在排序单词列表中的位置,或者None在找不到单词时返回。以下是代码:

def partition(t,kw,upper,lower):
    if ((upper-lower) > 1):
        pivot = lower + (upper-lower)//2
        print("pivot is now {}".format(pivot))
        if (kw >= t[pivot]):
            lower = pivot
            print("searching on the right",upper,lower)
            return(partition(t,kw,upper,lower))
        
        elif (kw <= t[pivot-1]):
            upper = pivot-1
            print("searching on the left",upper,lower)
            return(partition(t,kw,upper,lower))

        else:
            return None 
            #that means the keyword is between t[pivot-1] and t[pivot]
            #which means it doesnt exist in the list
    if (upper - lower) <= 1:
        if (kw == t[upper]):
            print("found element {} at upper bound {}".format(kw,upper))
            return(upper) …
Run Code Online (Sandbox Code Playgroud)

python recursion

2
推荐指数
1
解决办法
82
查看次数

标签 统计

python ×1

recursion ×1