iterative binary_search Python implementation
Be sure to check bisect the Python's standard binary search module.

This is a good implementation of Binary Search; I just have a few nitpicks:


How about a high and low overload?

Instead of declaring your lower and higher index like this: 


lower_index = 0
upper_index = len(array) - 1



You could give them as argument overloads

def binary_search_iterative(array, item, low=0, high=None):
    if high is None:
        high = len(array)
    ...

Change your comments accordingly

Don't mix comments and docstrings, stick with docstrings if you want to explain arguments


"""iteratively return the index of the item with binary search or None if not found"""
# Sorted array that has to be the condition
# go through several iteration until we found this
# First, set the lower_index = 0
# upper_index as the length of array -1
lower_index = 0



That could be this:

"""Return the index of the item with binary search or None if not found

Keyword arguments:
array -- the list to search in
item -- the item to search for
high -- the highest index to search in between (default highest index of the array)
low -- the lowest index to search in between (default 0)
"""


This uses the PEP257 Docstring style, but you may use your own as long as it is clear.
Remove redundant comment

Commenting is good, but don't overdo it; your code is good enough to speak for itself. These comments feel redundant:


# calculate the middle index by sum the lower_index and upper_index and divide by 2
# check if the item is found
# Did not find