我是编程新手。 我写了一个二进制搜索递归函数。当我使用debug运行程序时,我得到了正确的输出,但是当debug关闭时,我得到了正确的答案以及以下错误:
Exception in thread ptvsd. stopping
(很可能是在解释器关闭期间引发的)某些参数(当x = 8时出现此错误,但当x = 2时未出现错误)。 我不明白为什么会收到此错误。
def binary_search_recursive(A, x, low=0, high=None):
if high is None:
high = len(A) - 1
if x == A[low]: return low
if x == A[high]: return high
if low == high: return -1
middle = low + (high - low) / 2
if x == A[middle]:
return middle;
elif x < A[middle]:
return binary_search_recursive(A, x, low, middle-1)
elif x > A[middle]:
return binary_search_recursive(A, x, middle+1, high)
print(binary_search_recursive((2,4,5,6,7,8,10),8))
要调试,我只需在运行代码之前使用VS代码在打印语句上放置一个断点即可。