balance = float(input('Enter a starting balance: '))
annualInterestRate = float(input('Enter an annual interest rate: '))
monthlyInterestRate = float(annualInterestRate/12)
balance2 = balance
lower = float(balance/12)
upper = float((balance*(1+monthlyInterestRate)**12)/12)
epsilon = 0.01
guess = float((lower+upper)/2)
def findMin(balance2, guess):
print(lower, upper)
for i in range(12):
balance2 -= guess
balance2 += (balance2*monthlyInterestRate)
if round(balance2, 2):
return guess
elif balance2 > 1:
lower = guess
elif balance2 < 1:
upper = guess
guess = (upper+lower)/2
balance2 = balance
findMin(balance2, guess)
findMin(balance2, guess)
print(guess)
Wenn ich den Code oben laufe ich bin einen UnboundLocalError bekommen (es sagt, dass ‚untere‘ wird vor der Zuweisung referenziert). Ich bin wirklich verwirrt, weil, wie Sie sehen können, 'niedriger' einen Wert vor der Funktion zugewiesen wird, also warum wird es nicht von außerhalb der Funktion aufgenommen? Jede Hilfe würde sehr geschätzt werden! Vielen Dank.‚UnboundLocalError: lokale Variable‚untere‘vor der Zuweisung referenziert‘
'lower' ist in ihrem Umfang nicht für' findMin' –
Verwenden 'global' Python zu sagen, die globale Variable – Li357
bessere Idee zu nutzen: das Programm neu schreiben, so dass Sie nicht' global' brauchen. – Matthias