Root finding using bisection method in Python
Type hints

They can help; an example:

def is_equal(a: float, b: float) -&gt; bool:


The return type of bisection should probably be Optional[float].

Argument format

MAX_ITER and TOL should be lower-case because they are the arguments to a function, not a global constant.

Early-return

        return (c, iter)
    else:


does not need the else, so you can drop it.

In-place addition

        iter = iter + 1


can be

        iter += 1


Return parens

This does not need parentheses:

        return (c, iter)


The tuple is implied.