저는 Python 2.7.12를 사용합니다. 제가 공부하고있는 알고리즘의 책은 파이썬 3을 사용합니다. 지금까지는 대부분의 알고리즘을 파이썬 2로 쉽게 바꿀 수 있지만,이 제곱근 함수는 뉴턴의 법칙을 사용하여 여전히 나를 잊어 버렸습니다. 여기 Python 3 함수가 Python 2.7.12에서 작동하지 않습니다
원래 파이썬 3def 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
을에, 코드입니다 그리고 여기 파이썬 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에서이 작업이 적절한 분할 된 것을 추가 할 가치가 있고 난 눈치 부동 – hansaplast
를 산출 :) – RemcoGerlich
그래서 __future__에서 나누기를 가져올 필요가 없습니다. (1/2) 대신 n/2.0과 0.5를 사용하십시오. :디 – Dalen