-4
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)
上記のコードを実行すると、UnboundLocalErrorが取得されます(割り当て前に参照されています)。あなたが見ることができるように、私は本当に混乱しています。なぜなら、関数の前に値が割り当てられているのですから、関数の外からピックアップされるのはなぜですか?どんな助けでも大歓迎です!ありがとう。'UnboundLocalError:代入前にローカル変数' lower 'が参照されています'
'lower'はグローバルベター –
使用 'はGlobal'のスコープではありません:あなたは'はGlobal'を必要としないようにプログラムを書き換えます。 – Li357
変数のアイデアを使用するためにはPythonを伝えるために' findMin' – Matthias