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

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

Your browser information:

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

I have changed the indentation, but still not working

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

Your browser information:

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

In the future, please create your own topic when you have specific questions about your own challenge code. Only respond to another thread when you want to provide help to the original poster of the other thread or have follow up questions concerning other replies given to the original poster.

The easiest way to create a topic for help with your own solution is to click the Ask for Help button located on each challenge. This will automatically import your code in a readable format and pull in the challenge url while still allowing you to ask any question about the challenge or your code.