📋 Формулировка задания
Исходное задание из LMS:
- Сложение чисел. Программа принимает строку с числами через пробел и выводит сумму.
- Обратный список. Программа принимает строку с числами и выводит список чисел в обратном порядке.
- Сумма чётных и нечётных. Отдельные суммы чётных и нечётных элементов списка.
- Максимальное число. Наибольшее число и его индекс без использования
max(). - Перестановка соседних элементов. Обмен местами соседних элементов списка.
- Числа и слова. Преобразование строки в список, где числа —
int, а слова — с заглавной буквы. - Кодирование строки. RLE:
aaaabbc → a4b2c1. - Проверка формата email. Проверка начала,
@и окончания домена. - Звёздочки вместо чисел. Замена всех цифр в строке на
*. - Развернуть слова. Каждое слово в строке задом наперёд.
- Количество символов. Подсчёт букв, цифр, пробелов и остальных символов.
- По одному пробелу. Удаление лишних пробелов.
- Все позиции подстроки. Вывод всех индексов вхождения подстроки.
- Корректные имена. Фильтрация имён, начинающихся с заглавной буквы и состоящих только из букв.
- Квадрат чисел. Замена чисел в строке на их квадрат.
🔧 Шаг 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
Решите задачи
Для каждой задачи:
- Прочитайте условие в разделе Задания.
- Напишите базовое решение циклами и методами строк.
- Попробуйте переписать решение в более Pythonic-стиле (list comprehensions, генераторные выражения).
- Проверьте решение на примерах из условия и на граничных случаях.
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
# и так далее
Проверьте граничные случаи: пустая строка, строка без цифр, отрицательные числа, список из одного элемента.
🧪 Как проверить решение
- Активируйте venv:
venv\Scripts\activate(Windows) илиsource venv/bin/activate(Mac/Linux). - Запустите каждый файл:
python task_XX_....py. - Убедитесь, что нет ошибок и вывод соответствует условию.
- Проверьте граничные случаи: пустая строка, строка без цифр, отрицательные числа, список из одного элемента.
🐛 Отладка в VS Code
- Поставьте точку останова кликом слева от номера строки.
- Нажмите F5 или выберите «Run → Start Debugging».
- Используйте панель Debug (переменные, стек вызовов, консоль).
- Проверьте Terminal на наличие traceback — Python показывает номер строки с ошибкой.
- Если метод не меняет строку, проверьте, присвоен ли результат новой переменной.
💾 Сохранение работы
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.