return
завершает функцию и немедленно возвращается. Он имеет отступ, поэтому он находится в l oop и работает безоговорочно в конце первой итерации. Отложите его для запуска после завершения l oop из-за break
:
def my_sqrt(a):
x = 1
while True:
y = (x + a / x) / 2.0
if y == x:
break
x = y
return y
В качестве альтернативы, поскольку return
завершает функцию и, следовательно, l oop, вам даже не нужно break
:
def my_sqrt(a):
x = 1
while True:
y = (x + a / x) / 2.0
if y == x:
return y
x = y