title: 费用分摊器 description: 跟踪小组的开支,并计算谁欠谁钱。
费用分摊器
Dex 好的。我们刚从一个补给站回来,每个人都为不同的东西付了钱,现在没人同意谁欠谁钱。这总是变成一件大事。你能建立一个东西,让我们记录谁付了多少钱,然后告诉我们如何结账吗?为了船员的士气着想 🙄
你要构建的东西
Add an expense (or 'done' to settle up):
Who paid? 张三
How much? 45.00
Add an expense (or 'done' to settle up):
Who paid? 李四
How much? 30.00
Add an expense (or 'done' to settle up): done
Total: £75.00 split between 2 people (£37.50 each)
张三 is owed £7.50
李四 owes £7.50你需要的内容
- Numbers and arithmetic - 分摊总数、计算余额
- Dictionaries - 跟踪每个人支付了多少钱
- Lists - 在收集费用时将每笔费用存储为列表
- Control flow - 运行至用户输入"done"为止的输入循环
- Functions - 分离收集和计算使逻辑更清晰
提示
跟踪每个人支付的金额。 使用名字作为键、金额作为值的字典可以轻松累积每个人的总额。
公平分摊很简单。 总金额除以人数。某人支付的金额与其应分摊金额之间的差异可以告诉你他们的余额:正数表示他们应得,负数表示他们欠账。
先收集,后计算。 在循环中收集所有费用。一旦用户输入"done",一次性进行所有计算。
进阶
基础功能正常运行后:
- 两个以上的人。 逻辑是相同的 - 计算每个人对公平分摊的余额。显示每个人的结果。
- 分项费用。 让用户为每笔费用添加描述,然后在结账前打印分项列表。
- 谁付给谁。 与其只显示余额,不如计算结清所有人所需的最小转账次数。

