以下是一个使用Python编写个人预算脚本的示例代码:
import csv
# 定义预算类别
class Category:
def __init__(self, name):
self.name = name
self.subcategories = []
def add_subcategory(self, subcategory):
self.subcategories.append(subcategory)
# 创建预算类别
food_category = Category("Food")
food_category.add_subcategory("Groceries")
food_category.add_subcategory("Eating Out")
entertainment_category = Category("Entertainment")
entertainment_category.add_subcategory("Movies")
entertainment_category.add_subcategory("Concerts")
categories = [food_category, entertainment_category]
# 定义预算项类
class BudgetItem:
def __init__(self, category, subcategory, amount):
self.category = category
self.subcategory = subcategory
self.amount = amount
# 读取预算数据文件
budget_data = []
with open('budget.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
category = row[0]
subcategory = row[1]
amount = float(row[2])
budget_item = BudgetItem(category, subcategory, amount)
budget_data.append(budget_item)
# 计算每个类别/子类别的总花费
category_totals = {}
subcategory_totals = {}
for item in budget_data:
category = item.category
subcategory = item.subcategory
amount = item.amount
if category not in category_totals:
category_totals[category] = 0
category_totals[category] += amount
if subcategory not in subcategory_totals:
subcategory_totals[subcategory] = 0
subcategory_totals[subcategory] += amount
# 打印类别/子类别总花费
print("Category totals:")
for category, total in category_totals.items():
print(category, total)
print("\nSubcategory totals:")
for subcategory, total in subcategory_totals.items():
print(subcategory, total)
以上代码示例中,我们首先创建了一个Category
类来表示预算的类别和子类别。然后,我们通过实例化Category
对象来定义不同的类别和子类别。接下来,我们使用BudgetItem
类来表示每个预算项,并将预算数据存储在budget_data
列表中。
在读取预算数据文件时,我们使用CSV模块来解析CSV文件,并将读取的数据转换为BudgetItem
对象并存储在budget_data
列表中。
最后,我们计算每个类别和子类别的总花费,并将结果存储在category_totals
和subcategory_totals
字典中。最后,我们打印出类别和子类别的总花费。
请注意,上述代码示例中的文件名为"budget.csv"。您需要根据实际的预算数据文件名进行修改。预算数据文件应该是一个CSV文件,每行包含类别、子类别和金额的信息。例如:
Food,Groceries,100.00
Food,Eating Out,50.00
Entertainment,Movies,20.00
Entertainment,Concerts,80.00