2010-12-03 7 views
0

がHERESに私の方法:のPython:除算エラー

def geometricSum(commonRatio, firstTerm, lastTerm): 
    return ((firstTerm - lastTerm) * commonRatio)/(1 - commonRatio) 

通訳・テスト:

>>> geometricSum(1.0,1.0,100.0) 
    Traceback (most recent call last): 
     File "<interactive input>", line 1, in <module> 
     File "F:\PortablePython_1.1_py3.0.1\sumOfGeometric.py", line 2, in geometricSum 
      return ((firstTerm-lastTerm)*commonRatio)/(1-commonRatio) 
    ZeroDivisionError: float division 
+0

使用しているパラメータを見て、commonRatioに1の値を与えます! –

答えて

10

0で割っています。 commonRatioは1.0なので、分母は1-1.0 = 0です。

+0

ハハはそれを認識していませんでした!愚かな私:( –

9

男母は、私が鈍いことは残念ですが、これはダブルスとは何の関係もありません。 あなたはゼロで分けています! Pythonの例外処理でなければ、あなたは宇宙を爆破させたかもしれません!

+0

こんにちは! – Charles

+6

+1:Chuck Norrisのみが0で割ることができます。 – sdolan

+2

@sdolan:わからないけど、Jon Skeetもゼロで分けることができると聞きました。 –

1

commonRatioは1だったので、発散系列を合計していたようです。あなたがゼロで除算しようとしているそれらのパラメータを持つ

1

...

commonRatio = 1.0 

/(1-commonRatio) 

/0 

これが0によるZeroDivisionError例外

7
1 - commonRatio = 1 - 1 = 0. 

課はまだPythonでサポートされていませんがスローされます。または数学で。

ZeroDivisionError: float division

エラーメッセージをお読みください:

+1

+1 2番目の文は私を笑った:D。 – helpermethod

+0

+1完全に笑った – slezica

3

Pythonは、問題が何であるかをあなたに言いました。 ZeroDivisionErrorと書かれているのは、がDivisionであり、それがZeroであるためです。 1 - commonRatioで割っていますが、プログラムのその時点でゼロです。