Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # define how close is close enough to be considered the same
- epsilon = 0.0000001
- def find_square_root(num, guess):
- if guess == 0:
- print('guess cannot be zero')
- return
- while True:
- # find a closer root each time
- better_guess = (guess + num/guess) / 2
- print('guess={:f} better_guess={:f}' .format(guess, better_guess))
- # in order to compare floats, we need to use abs with epsilon since floats are only approximate number
- # if it's close enough, let's return this guess as the final answer
- if (abs(better_guess - guess) < epsilon):
- return guess
- break
- guess = better_guess
- # square_root = find_square_root(100,0)
- # square_root = find_square_root(100,100)
- # square_root = find_square_root(100,101)
- # square_root = find_square_root(100,-1) # you'll get a negtive result which is still one of its square roots.
- square_root = find_square_root(100,1)
- print(square_root)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement