好吧,我不認爲這個問題已經在這裏回答過。瞭解Python元組和重新分配
我想知道Python是如何執行這個for循環。僅供參考,這是第2課從6.00SC MIT OCW的一部分:
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
如何for循環是由行執行行任何人能解釋一下嗎?我知道i變量被創建爲運行5次(poly多元組的長度),其中ans在每次迭代中被更新。我感到困惑的地方是每次重新分配我的時間。
通過ANS第三時間= 0.0 +(5)* X **(2)
它我認爲聚[i]的斂索引號碼(5),但那麼x乘以我的權力,這是現在的指數位置本身(2)。這正是它應該做的事情,但我無法理解我可以如何看起來既是索引號碼又是索引位置。
我是編程新手,所以任何信息都將是一個巨大的幫助。
非常感謝!
ns = 0.0'把'import pdb; pdb.set_trace()'。 [這裏是一個關於這個主題的好教程](https://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/) –
'x ** i'的意思是「x對我的力量」,這幾乎是你期望在多項式中看到的。 – khelwood
'x ** i'不是'x'乘以'i'。這是'我'的力量的'x'。 –