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

Tell us what’s happening:

Need Help with Python Coding Step 18

I’m currently stuck on step 18 of my Python programming exercise. The error messages mention indentation problems and using pass in the code, but I can’t figure out exactly what needs to be fixed. Could someone please help explain what I need to do in simpler terms? I’d really appreciate any guidance to move forward with this coding challenge.

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 not None:
           print(f'The square root of {square_target} is approximately {root}.')
        else:
           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/140.0.0.0 Safari/537.36

Challenge Information:

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

Hi @petkovadonna and welcome to our community!

You start this step with this:

if root is None:
    print(f"Failed to converge within {max_iterations} iterations.")

…and you should not amend this code but instead add an else clause with the relevant message (as detailed in the instructions). Note that the message for this step does not end with a period (full stop).

1 Like