input: Write a function to implement binary search in Python. The binary search function should return the index of the target value if it is found in the sorted list, otherwise it should return -1. If the list is empty, the function should return -1.
  def binary_search(nums, val):
      low = 0
      high = len(nums) - 1
      
      while low <= high:
          mid = (low + high) // 2
          if nums[mid] == val:
              return mid
          elif nums[mid] > val:
              high = mid - 1
          else:
              low = mid + 1
      return -1
  assert binary_search([3, 4, 5, 6, 7, 8, 9], 8)==5
  assert binary_search([3, 4, 5, 6, 7, 8, 9], 10)==-1
  assert binary_search([], 8)==-1
  assert binary_search([1, 2, 3, 4, 5], 1)==0
  assert binary_search([1, 2, 3, 4, 5], 5)==4
output: def binary_search(nums, val):
      low = 0
      high = len(nums) - 1
      
      while low <= high:
          mid = (low + high) // 2
          if nums[mid] == val:
              return mid
          elif nums[mid] > val:
              high = mid - 1
          else:
              low = mid + 1
      return -1