在过去的一个小时里,我一直在试图破译这个问题,但在这里遇到了一些麻烦。这就是问题

到目前为止,这是我的程序

def main():
    n = eval(input("Enter a positive number: "))
    while (n <= 0):
        print ("Error please re-input")
        n = eval(input("Enter a positive number: "))

    oldGuess = n / 2.0
    newGuess = ((n / oldGuess) + oldGuess) / 2.0;
    difference = n - n ** 0.5
    while (difference < 1 * 10 ** -6):
        print ("Error")
        difference = abs(n - n ** 0.5)
    print ("Difference:", difference)

main()
所以我真的不明白我们如何告诉程序进行猜测,然后计算变量 n 的平方根。我什至不认为我的 while 语句在这种情况下是正确的。我不使用已经嵌入到 python 中的 squareroot 函数,所以它必须手动完成我相信我仍然迷失了猜测函数的含义。

最佳答案

while True:
    n = float(input("Enter a positive number: "))
    if n > 0:
        break
    print ("Error please re-input")

oldGuess = n / 2.0
while True:
    newGuess = ((n / oldGuess) + oldGuess) / 2.0;
    oldGuess = newGuess
    if -1e-6 < n - newGuess * newGuess < 1e-6:
        break

print ("Difference:", abs(n ** .5 - newGuess))

关于python - 计算平方根的逻辑思维,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17689229/

10-09 16:45