class TodoList:
def __init__(self):
self.tasks = []
def add_task(self, task, priority="中"):
task_item = {
"task": task,
"priority": priority,
"completed": False,
"created_at": "2024-01-01" # 简化版本
}
self.tasks.append(task_item)
print(f"任务已添加: {task}")
def view_tasks(self):
if not self.tasks:
print("没有待办事项")
return
print("\n=== 待办事项列表 ===")
for i, task in enumerate(self.tasks, 1):
status = "✓" if task["completed"] else "□"
print(f"{i}. [{status}] {task['task']} (优先级: {task['priority']})")
def complete_task(self, task_index):
if 1 <= task_index <= len(self.tasks):
self.tasks[task_index - 1]["completed"] = True
print(f"任务已完成: {self.tasks[task_index - 1]['task']}")
else:
print("无效的任务编号")
def delete_task(self, task_index):
if 1 <= task_index <= len(self.tasks):
deleted_task = self.tasks.pop(task_index - 1)
print(f"任务已删除: {deleted_task['task']}")
else:
print("无效的任务编号")
def get_completed_count(self):
return sum(1 for task in self.tasks if task["completed"])
def get_pending_count(self):
return sum(1 for task in self.tasks if not task["completed"])
def main():
todo = TodoList()
while True:
print("\n=== 待办事项管理器 ===")
print("1. 添加任务")
print("2. 查看任务")
print("3. 完成任务")
print("4. 删除任务")
print("5. 显示统计")
print("6. 退出")
choice = input("请选择操作 (1-6): ")
if choice == "1":
task = input("请输入任务: ")
priority = input("请输入优先级 (高/中/低,默认为中): ") or "中"
todo.add_task(task, priority)
elif choice == "2":
todo.view_tasks()
elif choice == "3":
todo.view_tasks()
task_num = input("请输入要完成的任务编号: ")
try:
todo.complete_task(int(task_num))
except ValueError:
print("请输入有效的数字")
elif choice == "4":
todo.view_tasks()
task_num = input("请输入要删除的任务编号: ")
try:
todo.delete_task(int(task_num))
except ValueError:
print("请输入有效的数字")
elif choice == "5":
print(f"已完成任务: {todo.get_completed_count()}")
print(f"待完成任务: {todo.get_pending_count()}")
print(f"总任务数: {len(todo.tasks)}")
elif choice == "6":
print("谢谢使用待办事项管理器!")
break
else:
print("无效选择,请重试")
if __name__ == "__main__":
main()