2 回答
TA贡献1798条经验 获得超7个赞
当输入为空时,似乎会出现此问题。一个潜在的解决方法,假设您只想要正数作为输入,将设置一个负数(或您选择的任何其他内容),例如 -1,作为退出条件:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
这应该避免EOFError.
编辑
如果您想使用空白输入(点击返回行)来跳出循环,您可以尝试以下替代语法:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
该not x检查是否x为空。这也更符合Python比x == ""。
TA贡献1828条经验 获得超3个赞
我是这样做的,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()
添加回答
举报