Практический проект: собираем всё вместе
Пришло время применить всё что ты изучил. Мы напишем небольшую программу, менеджер задач в командной строке.
Что будет делать программа
- Показывать список задач
- Добавлять новые задачи
- Отмечать задачи выполненными
- Считать статистику
Шаг 1: Структура данных
Сначала решим как хранить задачи. Каждая задача, словарь с полями. Все задачи, список словарей:
tasks = [
{"id": 1, "title": "Купить хлеб", "done": False},
{"id": 2, "title": "Позвонить маме", "done": True},
]
Шаг 2: Функции
Разбиваем программу на функции, по одной на каждое действие:
def show_tasks(tasks):
if not tasks:
print("Список задач пуст")
return
print("\n=== Список задач ===")
for task in tasks:
status = "✓" if task["done"] else "○"
print(f"[{status}] {task['id']}. {task['title']}")
print()
def add_task(tasks, title):
new_id = len(tasks) + 1
task = {"id": new_id, "title": title, "done": False}
tasks.append(task)
print(f"✅ Задача добавлена: {title}")
def complete_task(tasks, task_id):
for task in tasks:
if task["id"] == task_id:
task["done"] = True
print(f"✅ Выполнено: {task['title']}")
return
print(f"Задача с id {task_id} не найдена")
def show_stats(tasks):
total = len(tasks)
done = sum(1 for task in tasks if task["done"])
pending = total - done
print(f"\n=== Статистика ===")
print(f"Всего задач: {total}")
print(f"Выполнено: {done}")
print(f"Осталось: {pending}")
Шаг 3: Главный цикл
def main():
tasks = []
# Добавим несколько задач для начала
add_task(tasks, "Изучить Python")
add_task(tasks, "Сделать проект")
add_task(tasks, "Написать резюме")
while True:
print("\nЧто делаем?")
print("1, Показать задачи")
print("2, Добавить задачу")
print("3, Отметить выполненной")
print("4, Статистика")
print("0, Выйти")
choice = input("\nВыбор: ").strip()
if choice == "1":
show_tasks(tasks)
elif choice == "2":
title = input("Название задачи: ").strip()
if title:
add_task(tasks, title)
elif choice == "3":
show_tasks(tasks)
try:
task_id = int(input("ID задачи: "))
complete_task(tasks, task_id)
except ValueError:
print("Введи число")
elif choice == "4":
show_stats(tasks)
elif choice == "0":
print("До свидания!")
break
else:
print("Неверный выбор")
main()
Что здесь использовано
- Переменные, хранят данные
- Список и словари, структура хранения задач
- Функции, каждое действие вынесено в отдельную функцию
- Цикл while, программа работает до команды выход
- Условия if/elif, выбор действия по вводу
- try/except, защита от неверного ввода
- F-строки, форматирование вывода
Сохрани этот код в файл tasks.py и запусти: python3 tasks.py
💡 Задание: Добавь возможность удалять задачи. Или сохранять список задач в файл чтобы он сохранялся между запусками. Это отличная практика.