目录

项目实战:综合应用所学知识(10/10)

介绍

项目需求分析

项目结构

任务管理系统实现

1. 准备工作

2. 添加任务

3. 更新任务状态

4. 删除任务

5. 查看任务列表

6. 数据可视化

综合示例:项目演示

总结


项目实战:综合应用所学知识(10/10)

介绍

经过前面九篇文章的学习,我们已经掌握了 Python 编程的基础和进阶技能,包括基本语法、控制流、函数与模块、数据结构、文件操作、面向对象编程、内置与第三方库、异常处理以及数据分析与可视化。在本篇文章中,我们将把这些知识整合起来,完成一个综合的小项目。通过这个项目,你将对所学知识有更深入的理解,并学会如何在实际场景中将它们结合起来使用。

本篇文章将带你构建一个简单的“任务管理系统”,该系统支持添加、删除、更新和查看任务,并提供数据可视化功能,展示每位任务分配者的任务数量。

项目需求分析

我们的任务管理系统需要具备以下功能:

  1. 添加任务:任务包括任务名称、分配者、截止日期和状态(未完成/已完成)。

  2. 更新任务状态:可以将某个任务标记为已完成。

  3. 删除任务:可以删除特定的任务。

  4. 查看任务列表:按分配者、状态等进行筛选。

  5. 数据可视化:显示每位分配者的任务数量。

我们将使用 pandas 处理数据,使用 matplotlib 可视化任务的分布情况。

项目结构

  • task_manager.py:主程序文件,包含所有功能。

  • tasks.csv:存储任务数据的 CSV 文件。

任务管理系统实现

1. 准备工作

首先,我们导入需要的库并创建一个用于存储任务的 CSV 文件。

import pandas as pd
import matplotlib.pyplot as plt
import os

# 如果 tasks.csv 文件不存在,则创建它
task_file = "tasks.csv"
if not os.path.exists(task_file):
    df = pd.DataFrame(columns=["任务名称", "分配者", "截止日期", "状态"])
    df.to_csv(task_file, index=False)

在上述代码中,我们导入了 pandasmatplotlib,并检查 tasks.csv 文件是否存在。如果文件不存在,我们创建一个包含四个列(任务名称、分配者、截止日期、状态)的空 DataFrame,并将其保存为 CSV 文件。

2. 添加任务

接下来,我们定义一个函数来添加新任务。

def add_task(task_name, assignee, due_date, status="未完成"):
    df = pd.read_csv(task_file)
    new_task = {"任务名称": task_name, "分配者": assignee, "截止日期": due_date, "状态": status}
    df = df.append(new_task, ignore_index=True)
    df.to_csv(task_file, index=False)
    print(f"任务 '{task_name}' 已成功添加。")

# 示例:添加一个任务
add_task("完成Python项目", "Alice", "2024-11-01")

3. 更新任务状态

我们可以定义一个函数来更新任务的状态,例如将某个任务标记为已完成。

def update_task_status(task_name):
    df = pd.read_csv(task_file)
    if task_name in df["任务名称"].values:
        df.loc[df["任务名称"] == task_name, "状态"] = "已完成"
        df.to_csv(task_file, index=False)
        print(f"任务 '{task_name}' 已标记为已完成。")
    else:
        print(f"任务 '{task_name}' 不存在。")

# 示例:更新任务状态
update_task_status("完成Python项目")

4. 删除任务

为了删除特定任务,我们可以定义一个删除任务的函数。

def delete_task(task_name):
    df = pd.read_csv(task_file)
    if task_name in df["任务名称"].values:
        df = df[df["任务名称"] != task_name]
        df.to_csv(task_file, index=False)
        print(f"任务 '{task_name}' 已成功删除。")
    else:
        print(f"任务 '{task_name}' 不存在。")

# 示例:删除任务
delete_task("完成Python项目")

5. 查看任务列表

我们还可以查看所有任务,或者按分配者、状态等进行筛选。

def view_tasks(status=None, assignee=None):
    df = pd.read_csv(task_file)
    if status:
        df = df[df["状态"] == status]
    if assignee:
        df = df[df["分配者"] == assignee]
    print("当前任务列表:")
    print(df)

# 示例:查看所有未完成的任务
view_tasks(status="未完成")

6. 数据可视化

最后,我们可以使用 matplotlib 绘制每位任务分配者的任务数量柱状图。

def visualize_tasks():
    df = pd.read_csv(task_file)
    task_count = df["分配者"].value_counts()

    # 绘制柱状图
    plt.bar(task_count.index, task_count.values, color="skyblue")
    plt.xlabel("分配者")
    plt.ylabel("任务数量")
    plt.title("每位分配者的任务数量")
    plt.show()

# 示例:可视化任务分布
visualize_tasks()

通过柱状图可以清楚地看到每位分配者的任务数量,这有助于管理者合理分配任务。

功能描述示例函数
添加任务添加新任务到任务列表add_task()
更新任务状态更新任务的状态为已完成update_task_status()
删除任务从任务列表中删除指定任务delete_task()
查看任务列表查看所有任务或按条件筛选任务view_tasks()
数据可视化展示每位分配者的任务数量分布visualize_tasks()

综合示例:项目演示

现在,我们将使用上述所有功能来完成一个完整的项目演示。

# 添加几个任务
add_task("编写报告", "Alice", "2024-11-05")
add_task("团队会议", "Bob", "2024-11-03")
add_task("代码审查", "Charlie", "2024-11-07")
add_task("完成测试", "Alice", "2024-11-10")

# 更新任务状态
update_task_status("团队会议")

# 查看所有任务
view_tasks()

# 删除一个任务
delete_task("代码审查")

# 可视化任务分布
visualize_tasks()

在这个演示中,我们首先添加了几个任务,更新了一个任务的状态,查看了当前的任务列表,然后删除了一个任务,并使用柱状图展示了每位分配者的任务数量分布。

总结

在本篇文章中,我们使用 pandasmatplotlib 结合 Python 编程的基础知识,构建了一个简单的任务管理系统。通过这个项目,我们应用了前面学习的文件操作、数据处理、面向对象编程、异常处理和数据可视化等技能。项目的构建过程展示了如何将多种编程技术整合在一起,解决现实生活中的问题。

在未来的学习中,你可以进一步扩展该项目,例如为每个任务添加优先级、设置任务提醒,甚至开发一个图形用户界面(GUI)来增强用户体验。希望通过这个项目,你能够加深对 Python 编程的理解,并获得更多的实战经验。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部