Поэтому я пытаюсь следовать лекциям SICP в Python и сконструировать простую модель черного ящика для ньютоновского метода нахождения аппроксимаций квадратного корня.
Кажется, что сам код работает нормально,но моя функция продолжает возвращать None?В приведенной ниже функции tryfor я сделал так, чтобы она одновременно печатала аппроксимацию и возвращала ее так, чтобы родительская функция могла возвращать аппроксимацию.
Я знаю по функции печати, что мой код может найти правильный ответ.Однако, когда я пишу print (NewtonSqrt (2)), None возвращается - мое приближение не было «возвращено» Смущен тем, почему это происходит.
def NewtonSqrt(x):
def improve(guess):
return (guess + (x/guess)) / 2
def goodenough(guess):
if abs(guess - (x/guess)) < 0.00001:
return True
def tryfor(guess):
if goodenough(guess) == True:
print(guess)
return guess
else:
tryfor(improve(guess))
return tryfor(1)
print(NewtonSqrt(2))