Итак, мне нужно создать что-то, что обновляет банковский счет (глобальная переменная). Мои инструкции таковы:Функция python 3.0 в функции
def setBalance(amt): # Defines (but doesn't print) the value of the account balance
def printBalance(): # Displays current balance as a money value with a heading
def printLedgerLine(date, amount, details): # with items (and the balance) spaced and formatted
def deposit (date, details, amount): # Alter the balance and print ledger line
def withdraw(date, details, amount): # Alter the balance and print ledger line
Так что, когда я делаю что-то подобное;
deposit ("23-12-2012", "Income", 225)
withdraw("24-12-2012", "Presents", 99.02)
printBalance()
Он вернется;
23-12-2012 Income $ 225.00 $ 575.01
24-12-2012 Presents $ 99.02 $ 475.99
Current Balance is $ 475.99
Я не уверен, как это сделать. На данный момент я определяю printLedgerLine, чтобы просто получить информацию и распечатать ее с вкладками, чтобы она выглядела хорошо. Затем я вызываю его либо изъятием, либо с депозитом, и пытается распечатать (новый) баланс в конце.
def deposit(date, details, amount):
global balance
balance = float(balance) + float(amount)
printLedgerLine(date,amount,details)
print(str(balance)
Это работает, но печатает их на отдельных строках, так как вызов функции распечатывает его, а затем печатает весы. И если я изменить последние 2 строки
print(printLedgerLine(date,amount,details),str(balance))
затем печатает Отсутствует баланс.
Должен ли я вместо этого возвращать printLedgerLine, но если я это сделаю, то как мне «форматировать» его без печати? Разочарование, кажется, что оно есть прямо там, и я смущен тем, насколько это просто! Извините за долгие запутывающие вопросы, трудно объяснить, когда ваш любитель! Благодаря
Поступая 'печать (printLedgerLine (дату, сумму, подробность), ул (баланс))' печати возвращаемого значения 'printLedgetLine', который, вероятно,' None'. Как выглядит функция 'printLedgerLine'? Выводит ли только строки с разделителями табуляции, а также строку «Текущий баланс»? Или просто «Текущий баланс» без фактического баланса? –
приветствует оба ответа! Формат был тем, что нужно T, до этого я просто печатал его[email protected]_k - функция printLedgerLine не инициализировала баланс первоначально, только когда был использован депозит/вывод –
Из описания '# с элементами (и балансом), расположенными на расстоянии и отформатированными', кажется, что 'printLedgerLine' всегда должен распечатайте баланс, поэтому он должен быть частью этой функции, а не «отзывать» или «депозит» –