如何在Python中按指定格式打印费用明细及最终剩余金额?
代码修正与完善
存在的问题及修正
- 未定义变量错误:代码中
final = (income_input - sum_gastos)里的sum_gastos是笔误,应改为已定义的sum_expenses。 - 费用打印逻辑缺失:需要遍历存储的费用列表,按
"描述 - 金额$"格式逐行输出每条记录。
修正后的完整代码
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
相关产品推荐
相关产品推荐

