# Learn the Bisection Method by Finding the Square Root of a Number - Step 18

### Tell us what’s happening:

I am confused why my code is incorrect. I have tried root is not None & root != None. Additionally, the error message I get states that the print function is not in the body of the else function which is not true.

### Your code so far

``````def square_root_bisection(square_target, tolerance=1e-7, max_iterations=100):
if square_target < 0:
raise ValueError('Square root of negative number is not defined in real numbers')
if square_target == 1:
root = 1
print(f'The square root of {square_target} is 1')
elif square_target == 0:
root = 0
print(f'The square root of {square_target} is 0')

else:
low = 0
high = max(1, square_target)
root = None

for _ in range(max_iterations):
mid = (low + high) / 2
square_mid = mid**2

if abs(square_mid - square_target) < tolerance:
root = mid
break

elif square_mid < square_target:
low = mid
else:
high = mid

# User Editable Region

if root is None:
print(f"Failed to converge within {max_iterations} iterations.")
else:
root is not None
print(f'The square root of {square_target} is approximately {root}')

# User Editable Region

``````

### Your browser information:

User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36`

### Challenge Information:

Learn the Bisection Method by Finding the Square Root of a Number - Step 18

Why do you have this part inside the `else`?

Thank you… I don’t know how to describe that mental error

1 Like