【发布时间】:2019-10-19 11:25:11
【问题描述】:
def binarysearch(arr,n):
arr.sort()
while(1):
i=0
mid = len(arr)//2
if(len(arr)==0):
return False
elif(len(arr)==1):
return True if arr[0]==n else False
else:
if n==arr[mid]:
return True
elif n<arr[mid]:
arr = arr[:mid]
else:
arr = arr[mid:]
if __name__ == '__main__':
arr = list(map(int,input().split(',')))
n = int(input("Enter the number to search :"))
status,i = binarysearch(arr,n)
if status:
print("Found element " + str(n))
else:
print("Not Found!!!")
我是 python 新手.. 在这个程序中..是否可以通过用户输入()传递空列表..
因为..当我没有给出任何东西或只是','同时在上述情况下为用户输入'arr'时, 它显示值错误.. ValueError: int() 以 10 为底的无效文字:''
【问题讨论】:
-
"".split(",") == [""]。添加逻辑来处理那个空的情况。 -
@jonrsharpe 或者只是捕获异常并说“列表格式不正确或为空”...
-
感谢您的帮助。也许我们可以在处理值错误异常时将 arr 初始化为 []?通过检查是否没有正确创建 arr
标签: python algorithm exception input binary-search-tree