用Python编写算法时,发生int对象不可调用的错误提示
D:\Python_file\python.exe D:\PyCharm_file\alg_work\test2\binarysearch.py
Traceback (most recent call last):
File "D:\PyCharm_file\alg_work\test2\binarysearch.py", line 3, in binarySearch1
right = len(arr) - 1
TypeError: 'int' object is not callable
Process finished with exit code 1
然后开始查找报错行,但也没发现调用了int类型。后面才发现是参数名重复了。
def binarySearch1(arr, len, target):#非递归实现二分查找元素位置
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if target < arr[mid]:
right = mid - 1
elif target > arr[mid]:
left = mid + 1
elif target == arr[mid]:
return mid
return -1
注意看第一行和第三行各有一个len,改正后如下:
def binarySearch1(arr, lenth, target):#非递归实现二分查找元素位置
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if target < arr[mid]:
right = mid - 1
elif target > arr[mid]:
left = mid + 1
elif target == arr[mid]:
return mid
return -1
测试通过!