I'm switching over to Python and am practicing some basic logic flows, and I wrote a binary search function. Is there a more elegant way to write this? I don't like how I set the initial maxim to 10**99 for example (that was just a way to encompass any realistic list size).
def binary_search(val, arr, minum=0, maxim=10**99):
if val < arr[0] or val > arr[-1]:
return "Not in range"
arr = arr[minum:maxim]
middle = int(len(arr) / 2)
maxim = len(arr)
if val == arr[middle]:
return middle
elif val > arr[middle]:
return middle + binary_search(val, arr, middle, maxim)
else:
return binary_search(val, arr, 0, middle)
return binary_search(val, arr, minum, middle), symmetrical with yourelifbranch?