🏠 Домашнее задание

⚡ Суть задания

Домашнее задание — это практикум 5. Нужно решить задачи на строки, списки и циклы.

  • Создайте рабочую папку и виртуальное окружение.
  • Решите минимум 5 задач из практикума.
  • Проверьте каждый файл в VS Code.

Результат: несколько рабочих файлов .py, которые корректно обрабатывают данные.

📋 Формулировка задания

Исходное задание из LMS:

  1. Сложение чисел. Программа принимает строку с числами через пробел и выводит сумму.
  2. Обратный список. Программа принимает строку с числами и выводит список чисел в обратном порядке.
  3. Сумма чётных и нечётных. Отдельные суммы чётных и нечётных элементов списка.
  4. Максимальное число. Наибольшее число и его индекс без использования max().
  5. Перестановка соседних элементов. Обмен местами соседних элементов списка.
  6. Числа и слова. Преобразование строки в список, где числа — int, а слова — с заглавной буквы.
  7. Кодирование строки. RLE: aaaabbc → a4b2c1.
  8. Проверка формата email. Проверка начала, @ и окончания домена.
  9. Звёздочки вместо чисел. Замена всех цифр в строке на *.
  10. Развернуть слова. Каждое слово в строке задом наперёд.
  11. Количество символов. Подсчёт букв, цифр, пробелов и остальных символов.
  12. По одному пробелу. Удаление лишних пробелов.
  13. Все позиции подстроки. Вывод всех индексов вхождения подстроки.
  14. Корректные имена. Фильтрация имён, начинающихся с заглавной буквы и состоящих только из букв.
  15. Квадрат чисел. Замена чисел в строке на их квадрат.

🔧 Шаг 0. Подготовка окружения

Перед началом работы настройте окружение. Эти шаги одинаковы для всех уроков курса.

📁 Структура репозитория: мы используем один репозиторий для всех практических работ. Это удобнее, чем десятки отдельных репозиториев: общий .gitignore, единая история, легко переключаться между уроками.
1

Создайте (или откройте) рабочую папку

В VS Code нажмите Ctrl+K Ctrl+O → выберите или создайте папку python-fundamentals-practice. Это будет корень вашего учебного репозитория.

# Или в терминале VS Code (Ctrl + `):
mkdir python-fundamentals-practice
cd python-fundamentals-practice
2

Инициализируйте Git-репозиторий (один раз)

Если папка ещё не является git-репозиторием:

git init

echo "# Python Fundamentals — Практические работы" > README.md
echo "venv/" > .gitignore
echo "__pycache__/" >> .gitignore
echo "*.pyc" >> .gitignore
echo ".env" >> .gitignore

git add README.md .gitignore
git commit -m "init: базовая структура репозитория"
3

Создайте папку для текущего урока

mkdir -p lesson-21
cd lesson-21
4

Создайте виртуальное окружение (venv)

# Windows
python -m venv venv
venv\Scripts\activate

# Mac / Linux
python3 -m venv venv
source venv/bin/activate

После активации в начале строки терминала появится (venv). Все дальнейшие команды выполняйте внутри venv.

5

Создайте ветку для задания

cd ..
git checkout -b lesson/21-practice-5
git push -u origin lesson/21-practice-5

Именование веток: lesson/XX-краткое-название.

🛠️ Шаги выполнения заданий

1

Создайте файлы для задач

task_01_sum.py
task_02_reverse.py
task_03_even_odd.py
task_04_max.py
task_05_swap.py
task_06_words_numbers.py
task_07_rle.py
task_08_email.py
task_09_stars.py
task_10_reverse_words.py
task_11_char_types.py
task_12_single_space.py
task_13_all_positions.py
task_14_valid_names.py
task_15_square_numbers.py
2

Решите задачи

Для каждой задачи:

  1. Прочитайте условие в разделе Задания.
  2. Напишите базовое решение циклами и методами строк.
  3. Попробуйте переписать решение в более Pythonic-стиле (list comprehensions, генераторные выражения).
  4. Проверьте решение на примерах из условия и на граничных случаях.
3

Пример: задача «Сложение чисел»

📄 task_01_sum.py
raw = input("Введите список чисел через пробел: ")
numbers = [int(x) for x in raw.split()]
print(f"Сумма чисел: {sum(numbers)}")
4

Проверьте каждый файл в VS Code

python task_01_sum.py
python task_02_reverse.py
python task_03_even_odd.py
# и так далее

Проверьте граничные случаи: пустая строка, строка без цифр, отрицательные числа, список из одного элемента.

🧪 Как проверить решение

  1. Активируйте venv: venv\Scripts\activate (Windows) или source venv/bin/activate (Mac/Linux).
  2. Запустите каждый файл: python task_XX_....py.
  3. Убедитесь, что нет ошибок и вывод соответствует условию.
  4. Проверьте граничные случаи: пустая строка, строка без цифр, отрицательные числа, список из одного элемента.

🐛 Отладка в VS Code

  1. Поставьте точку останова кликом слева от номера строки.
  2. Нажмите F5 или выберите «Run → Start Debugging».
  3. Используйте панель Debug (переменные, стек вызовов, консоль).
  4. Проверьте Terminal на наличие traceback — Python показывает номер строки с ошибкой.
  5. Если метод не меняет строку, проверьте, присвоен ли результат новой переменной.

💾 Сохранение работы

git add lesson-21/
git commit -m "lesson-21: practice 5"
git push

💡 Советы и типичные ошибки

  • Убедитесь, что venv активирован перед запуском.
  • Не коммитьте папку venv/ — она указана в .gitignore.
  • Помните, что строки неизменяемы: результат метода нужно сохранять.
  • Для безопасного поиска используйте find(), если подстрока может отсутствовать.
  • Не путайте split() и split(" "): первый обрабатывает любые пробелы, второй — только один.
  • Не модифицируйте список во время итерации по нему — используйте новый список.
Проверить по документации: f-strings, list comprehensions, генераторные выражения и встроенные функции sum(), max() выходят за рамки исходного занятия, но являются стандартными возможностями Python.