私はPython 2.7.12を使用しています。私が勉強しているアルゴリズムの本はPython 3を使っています。今まで、ほとんどのアルゴリズムをPython 2に簡単に変更できることが分かっていましたが、この平方根関数はニュートンの法則を使ってもまだ私を逃しています。ここでPython 3関数をPython 2.7.12で動作させることはできません
は、私は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
そして、ここではエラーになり、コードです:
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用にこの関数を書く方法を知りたいのです。
を:)多分それは、Python 3に、この操作は、適切な部門になったと私は気づいたフロート – hansaplast
をもたらし、行っていることを追加する価値があります:) – RemcoGerlich
したがって、__future__から除算をインポートする必要はなく、(1/2)の代わりにn/2.0と0.5を使用するだけです。 :D – Dalen