要制作一个简单的记账本程序,你可以按照以下步骤进行:
设计数据模型
确定需要记录的信息,如收支类型、金额、日期和备注。
使用字典或数据结构(如列表或DataFrame)来存储每一笔账单记录。
创建主程序结构
设计一个简单的菜单系统,允许用户选择不同的操作,如添加记录、查看记录、删除记录和退出程序。
实现基本功能
添加记录:允许用户输入收支类型、金额、日期和备注,并将其添加到记录列表中。
查看记录:显示所有记录或根据特定条件筛选记录。
删除记录:允许用户删除特定的记录。
保存和读取数据:将记录保存到文件,并从文件中读取记录。
添加统计功能 (可选):
计算总体收支情况,包括收入和支出的总数。
生成报表,统计每个类型的支出和收入总和。
测试和调试
确保所有功能正常工作,没有错误或异常。
优化用户界面和交互体验。
```python
from datetime import datetime
import pandas as pd
class AccountBook:
def __init__(self):
self.records = pd.DataFrame(columns=['日期', '类型', '金额', '分类', '备注'])
def add_record(self, amount, type_='支出', category='其他', note=''):
new_record = {
'日期': datetime.now().strftime('%Y-%m-%d'),
'类型': type_,
'金额': float(amount),
'分类': category,
'备注': note
}
self.records = pd.concat([self.records, pd.DataFrame([new_record])], ignore_index=True)
def save_to_file(self):
self.records.to_csv('我的账本.csv', index=False)
def view_records(self):
print(self.records)
def delete_record(self, index):
if 0 <= index < len(self.records):
self.records = self.records.drop(index)
else:
print("无效的索引")
def main():
account_book = AccountBook()
while True:
print("\n记账本菜单:")
print("1. 添加记录")
print("2. 查看记录")
print("3. 删除记录")
print("4. 退出")
choice = input("请选择一个操作 (1-4): ")
if choice == '1':
amount = float(input("请输入金额: "))
record_type = input("请输入类型 (收入/支出): ")
category = input("请输入分类: ")
note = input("请输入备注 (可选): ")
account_book.add_record(amount, record_type, category, note)
elif choice == '2':
account_book.view_records()
elif choice == '3':
index = int(input("请输入要删除的记录索引: "))
account_book.delete_record(index)
elif choice == '4':
print("退出记账本.")
break
else:
print("无效选择! 请重试.")
if __name__ == "__main__":
main()
```
这个示例代码提供了一个基本的记账本功能,包括添加记录、查看记录和删除记录。你可以根据需要进一步扩展和优化这个程序,例如添加更多的统计功能和更复杂的用户界面。