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

Tell us what’s happening:

I have assigned root the value of mid and break at the end of loop but it is not working any assistance is welcomed?

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:
                mid = root
            break    


# User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15

Challenge Information:

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

set the value of root to mid

left = right
left <=== right
right = right

Read these assignments from right to left. What’s on the right side gets copied into the left.

Also, you want break to execute only if the if statement is true, so it needs to be within the if statement.

2 Likes