좋아, 나는이 질문에 이전에 대답하지 않았다고 생각한다.파이썬 튜플 및 재 할당 이해하기
정확히 어떻게 파이썬이이 루프를 실행하는지 궁금합니다. 참고로이 6.00SC MIT OCW에서 교훈 2의 일부는 다음과 같습니다 루프에 대한이 라인으로 라인을 실행하는 방법을
def evaluate_poly(poly, x):
""" Computes the polynomial function for a given value x. Returns that value.
Example:
>>> poly = (0.0, 0.0, 5.0, 9.3, 7.0) # f(x) = 7x^4 + 9.3x^3 + 5x^2
>>> x = -13
>>> print evaluate_poly(poly, x) # f(-13) = 7(-13)^4 + 9.3(-13)^3 + 5(-13)^2
180339.9
poly: tuple of numbers, length > 0
x: number
returns: float """
ans = 0.0
for i in xrange(len(poly)):
ans += poly[i] * (x ** i)
return ans
사람이 나에게 설명 할 수 있습니까? 나는 ans가 각 반복을 업데이트하는 5 번 (폴리 튜플의 길이)을 실행하기 위해 i 변수가 생성된다는 것을 알고 있습니다. 내가 혼란 스러울 때마다 매번 i의 재 할당이 있습니다. ANS 통해
번째 시간 = 0.0 + (5) * X ** (2)
그것은 그 폴리 [I]를 인덱스 번호 (5)을 잡고 있지만, 다음 X가 곱 날 것으로 보인다 이제 인덱스 위치 자체 인 i의 힘 (2). 정확히 무엇을 해야하는지, 그러나 나는 겉으로보기에 인덱스 된 숫자와 인덱스 된 위치가 될 수있는 방법을 이해할 수 없습니다.
나는 프로그래밍에 익숙하지 않으므로 모든 정보가 엄청난 도움이 될 것입니다.
감사합니다.
줄 앞의'a ns = 0.0' put'import pdb; pdb.set_trace()'. [주제에 대한 좋은 자습서가 있습니다.] (https://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/) –
'x ** i'는 "x의 i의 힘"을 의미하고, 그것은 여러분이 다항식에서 볼 것을 기대하는 것입니다. – khelwood
'x ** i'는'x'에'i'를 곱하지 않습니다. 그것은'i'의 힘에'x'입니다. –