2017-09-19 168 views
-2

由於某些原因,我一直在「Math」上收到NameError。input()錯誤 - NameError:名稱'...'未定義

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

我很抱歉,但看起來如何?就像我說的我是一個完整的新手......有一位朋友幫我解決了這個問題>< – 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上進行upvoting/accept。 – MSeifert

0

的失敗原因是因爲有一個在你的代碼中沒有定義math變量,因此不能使用math.pow

但是,您不需要import math(但也可以),因爲內置函數中有pow函數。

所以只是改變:

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

到:

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

,或者使用電運營**

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