Skip to Content

🧠 Ngày 28 – Python Hằng ngày 365 ngày - Hoàn thiện To-Do List App (Phần 2)

🧠 Ngày 28 – Python Hằng ngày 365 ngày - Hoàn thiện To-Do List App (Phần 2)

✨ Mục tiêu

  • Hoàn thiện các chức năng trong app:
    •  Thêm công việc mới
    •  Xem danh sách công việc
    •  Đánh dấu đã hoàn thành
    •  Xóa công việc

1. addTask(tasks_list) - Thêm công việc mới

def addTask(tasks_list):
    print("\n>> Nhập công việc mới:")
    title = input("Tên công việc: ")
    task = {
        "title": title,
        "completed": False
    }
    tasks_list.append(task)
    print("✅ Đã thêm công việc.")

2. viewTasks(tasks_list) - Xem danh sách công việc

def viewTasks(tasks_list):
    if not tasks_list:
        print("📭 Danh sách công việc trống.")
        return

    print("\n📋 Danh sách công việc:")
    for idx, task in enumerate(tasks_list, start=1):
        status = "✅" if task["completed"] else "⏳"
        print(f"{idx}. {task['title']} [{status}]")

3. markComplete(tasks_list) - Đánh dấu hoàn thành

def markComplete(tasks_list):
    if not tasks_list:
        print("❌ Không có công việc nào.")
        return

    viewTasks(tasks_list)
    try:
        idx = int(input("Nhập số thứ tự công việc cần đánh dấu hoàn thành: "))
        if 1 <= idx <= len(tasks_list):
            tasks_list[idx-1]["completed"] = True
            print("✅ Công việc đã được đánh dấu hoàn thành.")
        else:
            print("❌ Số không hợp lệ.")
    except ValueError:
        print("⚠️ Vui lòng nhập một số.")

4. deleteTask(tasks_list) - Xóa công việc

def deleteTask(tasks_list):
    if not tasks_list:
        print("📭 Không có gì để xóa.")
        return

    viewTasks(tasks_list)
    try:
        idx = int(input("Nhập số thứ tự công việc cần xóa: "))
        if 1 <= idx <= len(tasks_list):
            removed = tasks_list.pop(idx-1)
            print(f"🗑️ Đã xóa công việc: {removed['title']}")
        else:
            print("❌ Số không hợp lệ.")
    except ValueError:
        print("⚠️ Vui lòng nhập một số.")

📖 Gợi ý tiếp theo

  • Ngày 29: Lưu trữ danh sách công việc vào file .json
  • Ngày 30: Đọa luồng menu bằng các module hoặc giao diện

✨ Bạn đã hoàn thành một app console Python có tính tương tác cơ bản! Hãy lưu lại và chia sẻ với bạn bè nếu bạn tự hào nhé! ✨

/* Tối ưu font, khoảng cách và màu chủ đạo */ body { font-family: 'Inter', sans-serif; color: #2e3a59; } h1, h2, h3 { color: #2a7a4d; /* màu xanh giống Docusaurus */ font-weight: 700; } a { color: #2a7a4d; text-decoration: none; } a:hover { text-decoration: underline; } /* Bo tròn và đổ bóng cho khối nội dung */ .card, .oe_structure { border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); padding: 1.5rem; }