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

### Tell us what’s happening:

You should create an if statement that checks if root is None.

``````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 == None:
print(f'Failed to converge within {max_iterations} iterations.')

# User Editable Region

``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0`

### Challenge Information:

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

too unindented, it needs to be after the for loop, so at the same level of the for loops, add four spaces to each line you added

Sorry, it is still not working. Same error. ’ You should create an `if` statement that checks if `root is None`

You could also check this:

https://www.geeksforgeeks.org/difference-between-and-is-operator-in-python/

### Tell us what’s happening:

I have changed the indentation, but still not working

``````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 == None:
print(f'Failed to converge within {max_iterations} iterations.')

# User Editable Region

``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0`

### Challenge Information:

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

The hint say

You should create an `if` statement that checks if `root is None` .

It is telling you exactly what code you should use

Yes. I got it. Thank you