Проблема в том, что значение, которое вы передаете своим функциям, является копией, а не ссылкой на оригинал.Вы можете сделать одно из двух:
- Использовать глобальный оператор внутри функций
- Сохранить возвращаемое значение из функций в глобальной переменной
Первый вариант
Я так понимаю, это то, что, по словам вашего профессора, запрещено:
def deposit():
global account_balance
deposit_amount = float(input('How much would you like to deposit today?\n'))
account_balance = account_balance + deposit_amount
print('Deposit was $%.2f, current balance is $%.2f' % (deposit_amount, temp))
return account_balance
Второй вариант
while userchoice!= 'Q':
userchoice = input('What would you like to do?\n(B)alance?, (W)ithdraw?, (D)eposit?, (Q)uit?\n')
userchoice = userchoice.upper()
if (userchoice == 'B'):
balance ()
elif userchoice == 'W':
account_balance = withdraw (account_balance)
elif userchoice == 'D':
account_balance = deposit (account_balance)
elif userchoice == 'Q':
print('Thank you for banking with us.')
break