Ok, ich glaube nicht, dass diese Frage hier schon einmal beantwortet wurde.Python-Tupel und Neuzuordnungen verstehen
Ich frage mich genau, wie Python diese for-Schleife ausführt. Zu Ihrer Information ist dies ein Teil der Lektion 2 von 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
Kann jemand mir erklären, wie dies für die Schleife zeilen ausgeführt wird? Ich verstehe, dass die i-Variable erstellt wird, um 5 Mal (die Länge des Poly-Tupels) zu laufen, in dem AN jede Iteration aktualisiert wird. Wo ich verwirrt bin, ist die Neuzuordnung von mir jedes Mal durch.
Das dritte Mal durch am = 0,0 + (5) * x ** (2)
Es scheint mir, dass Poly [i] wird die indizierte Zahl Grabbing (5), aber dann ist x multipliziert die Macht von i, die jetzt die Indexposition selbst ist (2). Das ist genau das, was es tun soll, aber ich kann nicht verstehen, wie ich sowohl die indexierte Nummer als auch die indizierte Position sein kann.
Ich bin neu in der Programmierung, so dass jede Info überhaupt eine enorme Hilfe sein wird.
Vielen Dank!
in der Zeile vor 'a ns = 0.0 'put' importieren pdb; pdb.set_trace() '. [Hier ist ein gutes Tutorial zum Thema] (https://pythonconquersstheuniverse.wordpress.com/2009/09/10/debugging-in-python/) –
'x ** i' bedeutet" x an die Macht von i ", Das ist ziemlich genau das, was Sie in einem Polynom erwarten würden. – khelwood
'x ** i' ist nicht' x' multipliziert mit 'i'. Es ist 'x' zur Kraft von' i'. –