将具有设定迭代次数的for循环更改为不确定while循环

2024-04-28 06:55:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试调整以下内容,这样它就不会运行最多10次,然后“放弃”,而是无限期地运行,直到找到答案。我可以把范围扩大到一个惊人的数字,但那不是作弊吗

def f(x):
    return x**2-2

def bisection(f,a,b): 
    for i in range (10):
        c=(a+b)/2
        if abs(f(c))<1/10**10:
            print("found zero",c)
            return c
        if f(a)*f(c)<0:
            a=a 
            b=c
        else: 
            a=c
            b=b 
        print("a=",a,"b=",b,"f(a)=",f(a))

bisection(f,0,2)

我试着换了一个房间

for i in range (10):

c=(a+b)/2
while abs(f(c))<1/10**10:

我什么也得不到。没有打印,也没有错误。莫名其妙

谢谢你的帮助

谢谢


Tags: 答案inforreturnifdefrange数字