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

如何在Python中按指定格式打印费用明细及最终剩余金额?

代码修正与完善

存在的问题及修正

  1. 未定义变量错误:代码中final = (income_input - sum_gastos)里的sum_gastos是笔误,应改为已定义的sum_expenses。
  2. 费用打印逻辑缺失:需要遍历存储的费用列表,按"描述 - 金额$"格式逐行输出每条记录。

修正后的完整代码

income_input = float(input("Please inform your income : R$ "))

expenses = []
sum_expenses = 0

while True:
    description_expenses = input("Describe your expense: ")
    description_expenses = description_expenses.upper()
    # 提前判断空描述,终止循环
    if description_expenses == '':
        break
    try:
        value_expenses = float(input(f"Type the value of your expense {description_expenses} - $ "))
        if value_expenses == 0:
            break
        expenses += description_expenses, value_expenses
        sum_expenses += value_expenses
    except ValueError:
        print("Invalid value, please enter a number.")
        continue

# 修正变量名错误
final = income_input - sum_expenses

# 按要求格式打印每条费用
for i in range(0, len(expenses), 2):
    desc = expenses[i]
    val = expenses[i+1]
    print(f"{desc} - {val}$")

try:
    print(f"${final} after all your expenses.")
except:
    print("FINISH")

关键修改说明

  • 修复了sum_gastos的变量名错误,替换为正确的sum_expenses。
  • 新增费用遍历逻辑:通过步长为2的循环,从expenses列表中依次取出费用描述和对应金额,按指定格式逐行打印。
  • 优化循环终止逻辑:提前判断空描述,避免无效的金额输入;增加金额输入的异常处理,防止非数字输入导致程序崩溃。

内容的提问来源于stack exchange,提问作者João Victor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:09:51