You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复代码以输出含利率的最终现金金额?解决TypeError报错

问题修复:TypeError及余额计算错误

错误原因分析

  1. 函数嵌套错误:updateBalance函数被错误缩进在formatCurrency内部,导致无法被正确调用。
  2. 余额计算逻辑错误:updateBalance里的计算完全偏离需求,没有用原始金额乘以利率,反而返回了函数本身,导致后续格式化时尝试对函数对象进行数值格式化,触发TypeError。
  3. 主程序缩进错误:主代码块被缩进,无法正常执行。

修复后的代码

def formatCurrency(money):
    moneyString = f'${money:.2f}'
    return moneyString

def updateBalance(amount, interest):
    # 将百分比利率转为小数,计算新余额:本金*(1+利率)
    new_amount = amount * (1 + interest / 100)
    return new_amount

### Main Program ###
savBal = float(input("Enter your savings balance: "))
chBal = float(input("Enter your checking balance: "))
savIR = float(input("Enter your saving interest rate %: "))
chIR = float(input("Enter your checking interest rate %: "))

savBal = updateBalance(savBal, savIR)
chBal = updateBalance(chBal, chIR)

print("Your updated savings balance is", formatCurrency(savBal))
print("Your updated checking balance is", formatCurrency(chBal))

关键修复点

  • 调整函数缩进:把updateBalance移到formatCurrency外面,成为独立的顶层函数。
  • 修正余额计算:new_amount = amount * (1 + interest / 100)——用户输入的利率是百分比(比如5代表5%),所以要除以100转成小数,再用本金乘以(1+利率)得到带利息的新余额。
  • 返回正确值:updateBalance返回计算后的金额,而不是函数本身。
  • 主程序去缩进:确保主代码块没有缩进,能正常执行。

内容的提问来源于stack exchange,提问作者Jamie Lemon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:25:18