Я использую Python 2.7.12; книга алгоритмов, которые я изучаю, использует Python 3. До сих пор я обнаружил, что могу легко изменить большинство алгоритмов на Python 2, но эта функция с квадратным корнем, использующая Закон Ньютона, все еще ускользает от меня.Невозможно заставить Python 3 работать в Python 2.7.12
Вот код, в своем первоначальном Python 3.
def square_root(n):
root = n/2 #initial guess will be 1/2 of n
for k in range(20):
root = (1/2) * (root + (n/root))
return root
А вот ошибка, когда я пытаюсь вызвать функцию в Python 2.7.12:
print square_root(9)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in square_root
ZeroDivisionError: integer division or modulo by zero
Я бы как знать, как написать эту функцию для Python 2.7.
вы бьете меня на 3 секунды :) Может, стоит добавить, что в Python 3 эта операция стала надлежащим разделением и дает поплавок – hansaplast
я заметил, сделано :) – RemcoGerlich
Итак, вам не нужно импортировать деление из __future__, просто используйте n/2.0 и 0.5 вместо (1/2). : D – Dalen