我已经被这个问题困扰了一段时间了。我们还没有在课堂上讨论这个特定的主题,所以这是我最后的作业之一,这有点令人沮丧。 我觉得我一切都对,但我似乎无法得到正确的平方根。每次我运行它时,答案都是关闭的。 例如 当我插入 100 时,它会输出 26 作为平方根,这是不正确的。 请帮助我需要完成这个,并且对我做错的事情感到不知所措
def sqrt(n):
nextGuess= n/2
lastGuess=1
accuracy= 0.000001
while lastGuess > accuracy:
x = (lastGuess + n/ lastGuess) / 2
lastGuess = nextGuess - x
nextGuess = x
return x
n = float(input('Enter a value:'))
if n <= 0:
print('Invalid number. Enter a positive number.')
else:
print(sqrt(n))
您的代码中有两个错误:首先您的
return
语句缩进错误,第二您的 lastGuess
应该使用 abs
def sqrt(n):
nextGuess= n/2
lastGuess=1
accuracy= 0.000001
while lastGuess > accuracy:
x = (lastGuess + n/ lastGuess) / 2
lastGuess = abs(nextGuess - x)
nextGuess = x
return x