title: TypeError: list indices must be integers, not float
body: <p>I have a python 3.x program that is producing an error:</p>
  
  <pre><code>def main():
      names = ['Ava Fischer', 'Bob White', 'Chris Rich', 'Danielle Porter',
               'Gordon Pike', 'Hannah Beauregard', 'Matt Hoyle',
               'Ross Harrison', 'Sasha Ricci', 'Xavier Adams']
  
      entered = input('Enter the name of whom you would you like to search for:')
      binary_search(names, entered)
  
      if position == -1:
          print("Sorry the name entered is not part of the list.")
      else:
          print(entered, " is part of the list and is number ", position, " on the list.")
      input('Press&lt;enter&gt;')
  
  def binary_search(names, entered):
      first = 0
      last = len(names) - 1
      position = -1
      found = False
  
      while not found and first &lt;= last:
          middle = (first + last) / 2
  
          if names[middle] == entered:
              found = True
              position = middle
          elif names[middle] &gt; entered:
              last = middle - 1
          else:
              first = middle + 1
  
      return position
  
  main()
  </code></pre>
  
  <p>Error is:</p>
  
  <pre><code>TypeError: list indices must be integers, not float
  </code></pre>
  
  <p>I am having trouble understanding what this error message means.</p>