Python

Контрольные задачи по Python: мини-проекты для закрепления

Контрольные задачи нужны, чтобы проверить не отдельную команду, а умение собрать маленькую программу целиком. Мини-проект заставляет связать ввод, данные, функцию, проверку ошибок и понятный вывод

По этой теме полезно отдельно посмотреть Составьте еженедельное расписание занятий, чтобы расширить контекст и сравнить подходы

По этой теме полезно отдельно посмотреть Аннотации типов для декораторов в Python, чтобы расширить контекст и сравнить подходы

Как работать с мини-проектом

Сначала сделайте минимальную версию. Потом добавьте один неудобный случай: пустой ввод, повтор, неверный формат, отрицательное число или отсутствие данных. Не начинайте с красивого меню, если основная логика еще не работает

Проект 1. Список покупок

Нужно добавлять товары в список и выводить их по одному

items = []

def add_item(title):
    title = title.strip()
    if title:
        items.append(title)

add_item("хлеб")
add_item("  ")
add_item("молоко")

for item in items:
    print(item)

Усложнение: запретите дубли и добавьте удаление товара

Проект 2. Дневник расходов

Храните расходы списком словарей и считайте общую сумму

expenses = [
    {"title": "кофе", "amount": 180},
    {"title": "такси", "amount": 450},
]

total = 0
for expense in expenses:
    total += expense["amount"]

print(total)

Усложнение: добавьте категории и сумму по каждой категории

Проект 3. Проверка пароля

Функция должна проверять длину, цифру и букву

def is_strong_password(password):
    has_digit = any(char.isdigit() for char in password)
    has_letter = any(char.isalpha() for char in password)
    return len(password) >= 8 and has_digit and has_letter

print(is_strong_password("python"))
print(is_strong_password("python123"))

Усложнение: добавьте проверку спецсимвола и понятное сообщение об ошибке

Проект 4. Мини-статистика по оценкам

Посчитайте среднюю оценку и найдите лучшую

grades = [5, 4, 3, 5, 4]

if grades:
    average = sum(grades) / len(grades)
    best = max(grades)
    print(average, best)
else:
    print("Оценок пока нет")

Усложнение: посчитайте, сколько раз встречается каждая оценка

Проект 5. Поиск слова в тексте

Пользователь вводит слово, программа ищет его в тексте без учета регистра

text = "Python helps automate routine tasks"
query = "python"

found = query.lower() in text.lower()
print(found)

Усложнение: выведите не только True или False, а количество совпадений

Как понять, что задача зачтена

  • программа запускается без ошибок
  • есть функция или понятный отдельный блок логики
  • проверен пустой ввод
  • проверены повторы
  • результат можно объяснить словами
  • код можно изменить под похожую задачу

Проект 6. Конвертер температур

Функция переводит градусы Цельсия в Фаренгейты и обратно

def celsius_to_fahrenheit(value):
    return value * 9 / 5 + 32

def fahrenheit_to_celsius(value):
    return (value - 32) * 5 / 9

print(celsius_to_fahrenheit(0))
print(fahrenheit_to_celsius(32))

Усложнение: добавьте выбор направления через строку c_to_f или f_to_c

Проект 7. Маленький каталог книг

books = [
    {"title": "Python", "year": 2024},
    {"title": "SQL", "year": 2022},
]

def find_books(query):
    result = []
    for book in books:
        if query.lower() in book["title"].lower():
            result.append(book)
    return result

print(find_books("py"))

Усложнение: добавьте фильтр по году и сообщение, если ничего не найдено

Финальная проверка

Выберите один мини-проект и восстановите его с чистого файла через день. Если можете написать основную логику без подсказки, материал действительно закрепился. Если нет, запишите конкретный блок, где застряли: список словарей, функция, условие, цикл или обработка пустых данных

Как выбрать проект под свой уровень

Если вы только начали, берите проект, где есть один список и две-три операции: добавить, показать, удалить. Если уже уверенно работаете со списками, добавьте словари, поиск и фильтрацию. Если хотите усложнить еще сильнее, сохраните данные в файл JSON

Пример сохранения:

import json

tasks = [
    {"title": "повторить списки", "done": False},
    {"title": "решить задачу", "done": True},
]

with open("tasks.json", "w", encoding="utf-8") as file:
    json.dump(tasks, file, ensure_ascii=False, indent=2)

Пример чтения:

import json

with open("tasks.json", "r", encoding="utf-8") as file:
    tasks = json.load(file)

print(tasks)

Так мини-проект становится похожим на настоящую программу: данные не исчезают после закрытия файла, а код начинает работать с внешним состоянием

Что показать в результате

В конце проекта у вас должны быть короткое описание, рабочий файл, три примера запуска и список проверок. Например: пустой список, один элемент, повтор, неверный ввод, удаление последнего элемента. Такой набор показывает, что вы не просто написали код, а подумали о поведении программы

Проект 8. Текстовый анализатор

Сделайте программу, которая принимает текст, считает количество слов, самое длинное слово и частоту каждого слова

text = "python python sql code"
words = text.split()

freq = {}
for word in words:
    freq[word] = freq.get(word, 0) + 1

longest = ""
for word in words:
    if len(word) > len(longest):
        longest = word

print("Слов:", len(words))
print("Самое длинное:", longest)
print(freq)

Усложнение: уберите знаки препинания, приведите слова к нижнему регистру и обработайте пустую строку. Такой проект хорошо проверяет строки, списки, словари, циклы и функции одновременно

Финальная версия должна быть оформлена в функции: count_words, get_longest_word, get_word_frequency. Если каждая функция работает отдельно, весь проект становится проще проверять и дополнять

Как принять мини-проект у самого себя

Мини-проект считается готовым не тогда, когда он один раз напечатал красивый результат. Он готов, когда вы можете показать входные данные, объяснить каждую функцию и повторить проверку на неудобных случаях

Используйте простой порядок приемки:

  1. запустите проект на обычных данных
  2. проверьте пустой ввод
  3. проверьте повторяющиеся значения
  4. вынесите основную логику в функцию
  5. добавьте один пример, где пользователь ошибается
  6. напишите короткое описание результата своими словами

Пример маленькой приемки для текстового анализатора:

def count_words(text):
    words = text.lower().split()
    return len(words)

def has_word(text, query):
    return query.lower() in text.lower().split()

print(count_words("Python Python SQL"))
print(count_words(""))
print(has_word("Python Python SQL", "python"))
print(has_word("Python Python SQL", "java"))

Такой формат помогает не растягивать учебный проект до бесконечности. Вы берете одну идею, делаете рабочий вариант, добавляете проверки и только после этого переходите к следующей задаче

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x