python中求平方根的牛顿法

2024-05-23 13:43:40 发布

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

这是一个使用牛顿法求解给定数字平方根的函数:

def sqrt(n):
    approx = n / 2.0
    while True:
        better = (approx + n / approx) / 2.0
        if abs(approx - better) < 0.00001:
            return better
        approx = better

我不明白的是,函数只返回“better”,它是一个整数,但是while循环依赖于一个布尔值,那么while循环怎么会停止呢?函数在哪里返回False来终止while循环?在

提前致谢。在


Tags: 函数falsetruereturnifdef数字整数
3条回答

so how is the while loop ever going to stop?

当函数返回时,它将停止。函数return将控制权转移给调用者,从而非自愿地中断和终止循环。在

Where does the function returns a False to terminate the while loop?

不需要。假设函数计算非负实数的平方根,则函数保证返回。从而导致环路终止

but the while loop depends on a Boolean

示例循环是无限循环的经典示例。无限循环保证永远运行,直到外部场景强制退出循环。显式条件可以是

  1. 明确的中断语句
  2. 函数返回
  3. 任何隐含的场景,如中断、信号或异常。在

实际上,它从不“返回一个False来终止while循环”,因为它根本不需要。在

当Python命中一个函数内的return-statement时,它会立即退出该函数。意思是,当到达return better时,sqrt退出,在此过程中,while循环也退出。在

您提到的布尔值True,是循环重复的条件。在这段代码中,循环总是重复的,因为循环条件总是为真。循环条件不依赖于返回值。当到达return语句时,函数会立即停止并返回该值,即使return语句处于循环或if语句中。在

相关问题 更多 >