2017-09-19 19 views
-2

何らかの理由で「数学」でNameErrorが発生し続けています。input()error - NameError:name '...'が定義されていません

years = 10 
D = 100 


p = 0.075/12 
T = years * 12 
S = D * ((math.pow(1 + p, T) - 1)/p) 

print("In", years, "years, $", end = "") 
print(D, "deposited per month will grow to $", end = "") 

SFormatted = "%.2f" % S 
print(SFormatted, ".", sep = "") 
+2

をあなたはそのコードで入力を使用していないようです。 –

+0

申し訳ありませんが、どのように見えますか?私が言ったように私は完全なnoobです...友人がこれの大部分で私を助けてくれました>< – diags187

+0

その場合、彼らにあなたが与えたコードの助けを頼むことをお勧めします。スタックオーバーフローは、コーディングサービスまたはデバッグサービスではありません。 [良い質問をするにはどうすればいいですか](https://stackoverflow.com/help/how-to-ask)をご覧ください。 – FluffyKitten

答えて

2

スクリプトでは'import math'を最初に実行する必要があります。

>>> math.pow(1, 2) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'math' is not defined 

>>> import math 
>>> math.pow(2, 2) 
4.0 
+0

@ diags187質問に最も役立つ答えを[承諾](https://stackoverflow.com/help/someone-answers)することを忘れないでください。コメントの中で "感謝"と言っても、StackOverflowで上書き/受け入れをすることはお勧めできません。 – MSeifert

0

あなたのコード内で定義されmath変数がありませんので、失敗の理由があるので、あなたはmath.powを使用することはできません。

ただし、組み込み機能にpow機能があるため、import math(ただしこれも機能する)は必要ありません。

だから変更:

S = D * ((math.pow(1 + p, T) - 1)/p) 

をする:

S = D * ((pow(1 + p, T) - 1)/p) 

や電源演算子**使用:

S = D * (((1 + p) ** T) - 1)/p) 
関連する問題