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

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

Домашнее задание закрепляет работу с циклом for, строками, кодами символов и аккумуляторами. Нужно решить 13 задач из практикума и проверить каждую в VS Code.

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

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

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

  1. Перевёрнутая лестница. Нарисовать перевёрнутую лестницу из звёздочек заданной высоты.
  2. Проверка текста на ASCII. Проверить, что все символы строки находятся в диапазоне 0..127.
  3. Вывод строки с интервалами. Вывести символы строки через пробел без лишнего пробела в конце.
  4. Проверка скобок. Проверить правильность расстановки круглых скобок.
  5. Поиск минимального символа. Найти символ с минимальным Unicode-кодом.
  6. Чётные и нечётные цифры. Разделить цифры числа на чётные и нечётные группы.
  7. Строка из диапазона Unicode. Сгенерировать строку из заданного диапазона кодов.
  8. Длина слов. Разбить строку на слова по пробелам и вывести длину каждого.
  9. Текст палиндром. Проверить, является ли строка палиндромом, игнорируя не-буквы.
  10. Все буквы алфавита. Проверить, что строка содержит все буквы английского алфавита.
  11. Сравнение строк на уникальность. Определить, в какой строке больше уникальных символов.
  12. Счётчик символов. Посчитать английские буквы, цифры и остальные символы.
  13. Одинаковый сдвиг. Проверить, совпадают ли сдвиги между соседними символами двух строк.

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

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

📁 Структура репозитория: мы используем один репозиторий для всех практических работ курса. Это удобнее, чем 46 отдельных репозиториев: общий .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

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

# Структура: lesson-XX/
mkdir -p lesson-17
cd lesson-17
4

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

# Windows (PowerShell / CMD)
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/17-practice-4

# Отправьте ветку на удалённый репозиторий (если настроен)
git push -u origin lesson/17-practice-4

Именование веток: lesson/XX-краткое-название. Это позволяет легко находить нужный урок.

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

Теперь, когда окружение готово, приступайте к решению.

1

Создайте файлы для каждого задания

В папке lesson-17 создайте файлы:

task_01_reverse_stairs.py
task_02_ascii_check.py
task_03_spaced_output.py
task_04_parenthesis_balance.py
task_05_min_char.py
task_06_even_odd_digits.py
task_07_unicode_range.py
task_08_word_lengths.py
task_09_palindrome.py
task_10_pangram.py
task_11_unique_compare.py
task_12_char_counter.py
task_13_same_shift.py
2

Решите каждое задание

Скопируйте условия из раздела Задания и напишите код. Для проверки используйте примеры ввода/вывода из условий.

Пример структуры файла task_01_reverse_stairs.py:

height = int(input("Введите высоту лестницы: "))

for i in range(height, 0, -1):
    print("*" * i)
3

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

Запустите программу и проверьте вывод:

python task_01_reverse_stairs.py

Проверьте граничные случаи: 0, 1, пустая строка, строка только с пробелами, строка с русскими буквами.

✅ Полные решения

Полные решения всех 13 заданий приведены в разделе Решения. Совет: попробуйте выполнить самостоятельно, прежде чем смотреть ответ.

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

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

🐛 Отладка в VS Code

Если что-то не работает:

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

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

# Добавьте все файлы урока
git add lesson-17/

# Сделайте коммит с осмысленным сообщением
git commit -m "lesson-17: practice 4 - loops, strings, ord/chr"

# Отправьте на GitHub / GitLab
git push

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

  • Убедитесь, что venv активирован перед запуском.
  • Не коммитьте папку venv/ — она указана в .gitignore.
  • Не забывайте преобразовывать ввод в число через int(), если это требуется.
  • Помните, что range(a, b) не включает b; поэтому для диапазона кодов от start до end используйте range(start, end + 1).
  • После ручного разбиения строки на слова не забудьте обработать последнее слово после цикла.
  • Строки неизменяемы: для сбора результата используйте новую строку, а не попытку изменить исходную.