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

Tell us what’s happening:

Step 11
Now you’ll repeatedly narrow down the interval by finding the midpoint of the current interval and comparing the square of the midpoint with the target value.

For that, inside the else block, create a for loop that runs up to max_iterations times.

For your loop, use the range function, which generates a sequence of numbers you can iterate over. The syntax is range(start, stop, step), where start is the starting integer (inclusive), stop is the last integer (not inclusive), and step is

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')
        return root
    elif square_target == 0:
        root = 0
        print(f'The square root of {square_target} is 0')
        return root

    low = 0
    high = max(1, square_target)

# User Editable Region

    root = None

for _ in range(max_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/129.0.0.0 Safari/537.36

Challenge Information:

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

Hi @nikhilsharmaweb02

For that, inside the else block, create a for loop that runs up to max_iterations times.

Here is a comparison of the original code and your code.

The code in blue is the original code, the code in red is your code.
The code in magenta is the overlap.

  1. Why are you returning root?
  2. Where is the else block?
  3. The for loop requires indentation. Remember it is empty.

image

For next time, describe the issue in your own words. Learning to communicate problems is a part of becoming a web developer.

Happy coding