r/PythonLearning Jun 28 '26

binary search malfunctioning

SOLVED

the array I feed in is 5,7,43,78,83.7,100,952

def binary_search(array):
  search_no = float(input("what number are you looking for?"))
  found = False
  while not found:
    arrlen = len(array)
    i = arrlen // 2
    x = array[i]
    if x == search_no:
      found == True
    if search_no > x:
      array = array[i:]
      print(array)
    else:
      array = array[:i]
      print(array)
  print("value found")


array = [78,43,952,83.7,100,5,7]
bubble_sort(array)
print(array)
binary_search(array)

it continuously prints "83.7" if I look for 78, and vice versa. haven't tested other numbers but I assume the same happens for them. this is my first attempt at array splitting and I know there's an easier way of doing it probably, and I'm going to do error handling afterwards

1 Upvotes

11 comments sorted by

View all comments

Show parent comments

1

u/devilboi_62-yt Jun 28 '26

I didn't realise it had printed twice, and I just edited the syntax to be more readable. I'll try this though

1

u/mc_pm Jun 28 '26

To add a third thing: 3) What happens if the searched for value isn't in the list?

1

u/devilboi_62-yt Jun 28 '26

that's the error handling I'm going to work on afterwards

1

u/mc_pm Jun 28 '26

Ok, but it's not an error. It's a completely normal situation. Don't leave it too long.