教程 python tutorial

小型项目示例:记账程序

在本章中,我们将编写一个简单的记账程序,用户可以记录收入和支出,程序将存储这些数据并允许用户查看历史记录。我们将使用 Python 的文件操作、数据处理以及简单的用户输入输出,来实现一个基本的记账功能。

项目目标

  1. 用户可以录入收入和支出。
  2. 程序会将记录保存到文件中。
  3. 用户可以查看收入和支出的总额。
  4. 提供简单的菜单供用户操作。

项目结构

代码

account\_book/
│
├── account.py        # 主程序,处理记账逻辑
├── data.txt          # 存储记录的文件
└── README.md         # 项目说明

代码实现

1. 创建 account.py 文件

python
# account.py

import os

# 数据文件路径
DATA_FILE = 'data.txt'

# 保存记录到文件
def save_record(record):
    with open(DATA_FILE, 'a') as file:
        file.write(record + '\n')

# 显示所有记录
def show_records():
    if not os.path.exists(DATA_FILE):
        print("没有记账记录。")
        return
    with open(DATA_FILE, 'r') as file:
        records = file.readlines()
        if not records:
            print("没有记账记录。")
        else:
            for record in records:
                print(record.strip())

# 计算总收入和支出
def calculate_balance():
    income = 0
    expense = 0
    if os.path.exists(DATA_FILE):
        with open(DATA_FILE, 'r') as file:
            records = file.readlines()
            for record in records:
                amount = float(record.split()[1])
                if record.startswith("收入"):
                    income += amount
                elif record.startswith("支出"):
                    expense += amount
    return income, expense

# 显示菜单
def display_menu():
    print("\n--- 记账程序 ---")
    print("1. 记录收入")
    print("2. 记录支出")
    print("3. 查看记录")
    print("4. 查看总余额")
    print("5. 退出")
    choice = input("请选择操作: ")
    return choice

# 主程序
def main():
    while True:
        choice = display_menu()
        if choice == '1':
            amount = input("请输入收入金额: ")
            description = input("请输入收入描述: ")
            record = f"收入 {description} {amount}"
            save_record(record)
        elif choice == '2':
            amount = input("请输入支出金额: ")
            description = input("请输入支出描述: ")
            record = f"支出 {description} {amount}"
            save_record(record)
        elif choice == '3':
            show_records()
        elif choice == '4':
            income, expense = calculate_balance()
            print(f"总收入: {income} 元, 总支出: {expense} 元, 余额: {income - expense} 元")
        elif choice == '5':
            print("感谢使用记账程序!")
            break
        else:
            print("无效选择,请重新输入。")

if __name__ == '__main__':
    main()

2. 数据存储文件 data.txt

这个文件将用于存储用户的记账记录,每一行包含一条收入或支出的记录,例如:

代码
收入 工资 5000
支出 饭钱 50
收入 奖金 1000
支出 购物 200

3. 如何运行

  • 将上述代码保存为 account.py 文件。
  • 在命令行中运行以下命令:
bash
python account.py

4. 功能说明

记录收入

当用户选择记录收入时,程序会要求输入收入的金额和描述,然后将这条记录保存到文件中。

记录支出

当用户选择记录支出时,程序会要求输入支出的金额和描述,并将记录保存到文件中。

查看所有记录

用户可以选择查看所有的记账记录,程序会从文件中读取记录并显示。

查看总余额

用户可以查看当前的总收入、总支出以及余额,程序会根据历史记录计算出这些信息。

退出程序

用户可以选择退出程序,程序将结束。

项目扩展

本项目是一个简单的记账程序,适合初学者练习。随着项目需求的增加,我们可以考虑以下功能扩展:

  • 使用数据库代替文本文件存储记录。
  • 增加分类功能,按类别查看收入和支出。
  • 提供图形界面(GUI)以提高用户体验。
  • 生成月度或年度报表,分析财务状况。

通过这个简单的记账程序,你可以学会如何使用 Python 处理文件操作、用户输入、数据存储和基本的业务逻辑。