用python写一个完整的记账系统
时间: 2024-03-27 14:36:05 浏览: 16
好的,下面是一个简单的记账系统的 Python 代码:
```python
import datetime
# 定义一个类,表示一笔账目
class AccountItem:
def __init__(self, amount, category, note):
self.amount = amount # 金额
self.category = category # 类别
self.note = note # 备注
self.time = datetime.datetime.now() # 时间
# 定义一个类,表示整个记账系统
class AccountSystem:
def __init__(self):
self.items = [] # 存储账目的列表
# 添加一笔账目
def add_item(self, item):
self.items.append(item)
# 根据类别统计总金额
def sum_by_category(self, category):
s = 0
for item in self.items:
if item.category == category:
s += item.amount
return s
# 根据时间范围统计总金额
def sum_by_time_range(self, start_time, end_time):
s = 0
for item in self.items:
if start_time <= item.time <= end_time:
s += item.amount
return s
# 测试代码
if __name__ == '__main__':
ac = AccountSystem()
ac.add_item(AccountItem(100, '购物', '买菜'))
ac.add_item(AccountItem(200, '交通', '地铁'))
ac.add_item(AccountItem(300, '餐饮', '午饭'))
ac.add_item(AccountItem(400, '购物', '买衣服'))
print(ac.sum_by_category('购物'))
print(ac.sum_by_time_range(datetime.datetime(2021, 1, 1), datetime.datetime.now()))
```
这个记账系统包含两个类,`AccountItem` 表示一笔账目,包括金额、类别、备注和时间;`AccountSystem` 表示整个记账系统,包含一个列表用于存储账目,以及三个方法:添加一笔账目、根据类别统计总金额、根据时间范围统计总金额。在测试代码中,首先创建一个记账系统,然后添加四笔账目,最后分别统计购物类别的总金额和今年以来的总金额。