2017-09-19 4 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

미안하지만 어떻게 보이나요? 내가 말했듯이 나는 완전한 멍청한 놈이다. 친구가 나를 돕는다. < – 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/accepting에 찬성하여 낙담합니다. – 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) 
관련 문제