Tell us what’s happening:
I am not sure why my new assignment to the root value will not pass.
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
# User Editable Region
if abs(square_mid - square_target) < tolerance:
root = mid
# 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
Challenge Information:
Learn the Bisection Method by Finding the Square Root of a Number - Step 14