近似平方根的牛顿法
Newton's method for approximating square roots
我正在尝试编写一个函数来计算牛顿法。期望我的代码中不断出现错误。
这是提示我编写代码的提示
这是我写下的代码
import math
def newton(x):
tolerance = 0.000001
estimate = 1.0
while True:
estimate = (estimate + x / estimate) / 2
difference = abs(x - estimate ** 2)
if difference <= tolerance:
break
return estimate
def main():
while True:
x = input("Enter a positive number or enter/return to quit: ")
if x == '':
break
x = float(x)
print("The program's estimate is", newton(x))
print("Python's estimate is ", math.sqrt(x))
main()
它似乎工作正常,但当我 运行 检查 Cengage 时,我一直收到此错误
我不太确定这是什么意思,因为我的代码似乎 运行ning 没问题。谁能帮忙解释一下?
问题似乎出现在输入为空时。假设您只想将正数作为输入,一个潜在的解决方法是设置一个负数(或您选择的任何其他值),例如 -1,作为退出条件:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
这应该避免 EOFError
.
编辑
如果你想使用空白输入(点击 return 行)来跳出循环,你可以试试这个替代语法:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
not x
检查 x
是否为空。它也比 x == ""
更 pythonic。 post 中还有其他检测空白输入的方法:How do you get Python to detect for no input.
我是这样操作的,Cengage 接受了。
import math
tolerance = 0.000001
def newton(x):
estimate = 1.0
while True:
estimate = (estimate + x / estimate) / 2
difference = abs(x - estimate ** 2)
if difference <= tolerance:
break
return estimate
def main():
while True:
x = input("Enter a positive number or enter/return to quit: ")
if x == "":
break
x = float(x)
print("The program's estimate is", newton(x))
print("Python's estimate is ", math.sqrt(x))
if __name__ == "__main__":
main()
我正在尝试编写一个函数来计算牛顿法。期望我的代码中不断出现错误。
这是提示我编写代码的提示
这是我写下的代码
import math
def newton(x):
tolerance = 0.000001
estimate = 1.0
while True:
estimate = (estimate + x / estimate) / 2
difference = abs(x - estimate ** 2)
if difference <= tolerance:
break
return estimate
def main():
while True:
x = input("Enter a positive number or enter/return to quit: ")
if x == '':
break
x = float(x)
print("The program's estimate is", newton(x))
print("Python's estimate is ", math.sqrt(x))
main()
它似乎工作正常,但当我 运行 检查 Cengage 时,我一直收到此错误
我不太确定这是什么意思,因为我的代码似乎 运行ning 没问题。谁能帮忙解释一下?
问题似乎出现在输入为空时。假设您只想将正数作为输入,一个潜在的解决方法是设置一个负数(或您选择的任何其他值),例如 -1,作为退出条件:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
这应该避免 EOFError
.
编辑
如果你想使用空白输入(点击 return 行)来跳出循环,你可以试试这个替代语法:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
not x
检查 x
是否为空。它也比 x == ""
更 pythonic。 post 中还有其他检测空白输入的方法:How do you get Python to detect for no input.
我是这样操作的,Cengage 接受了。
import math
tolerance = 0.000001
def newton(x):
estimate = 1.0
while True:
estimate = (estimate + x / estimate) / 2
difference = abs(x - estimate ** 2)
if difference <= tolerance:
break
return estimate
def main():
while True:
x = input("Enter a positive number or enter/return to quit: ")
if x == "":
break
x = float(x)
print("The program's estimate is", newton(x))
print("Python's estimate is ", math.sqrt(x))
if __name__ == "__main__":
main()