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

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

Домашнее задание повторяет материал уроков 16–18: циклы, строки, списки и базовый ввод-вывод. Нужно решить три задачи — таблицу умножения, лестницу чисел и удаление повторяющихся символов.

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

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

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

  1. Таблица умножения. Напишите программу, которая выводит таблицу умножения для чисел от 1 до n, где n вводит пользователь. Оформите вывод так, чтобы столбцы были ровные.
    Введите число: 5
    1   2   3   4   5
    2   4   6   8   10
    3   6   9   12  15
    4   8   12  16  20
    5   10  15  20  25
  2. Лестница чисел. Напишите программу, которая принимает число n и выводит "лестницу" из чисел: каждая строка содержит числа от 1 до номера строки.
    Введите число: 5
    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5
  3. Удаление повторяющихся символов. Напишите программу, которая принимает строку и удаляет из неё все повторяющиеся символы, сохраняя только первые вхождения.
    Введите строку: Python programming
    Результат: Python prgami

🔧 Шаг 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-19
cd lesson-19
4

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

# Windows
python -m venv venv
venv\Scriptsctivate

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

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

5

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

cd ..
git checkout -b lesson/19-summary-session-5
git push -u origin lesson/19-summary-session-5

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

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

1

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

task_01_multiplication_table.py
task_02_number_ladder.py
task_03_remove_duplicates.py
2

Решите задание 1: таблица умножения

Используйте вложенные циклы и форматированный вывод.

📄 task_01_multiplication_table.py
n = int(input("Введите число: "))

for i in range(1, n + 1):
    for j in range(1, n + 1):
        print(f"{i * j:4}", end="")
    print()
3

Решите задание 2: лестница чисел

📄 task_02_number_ladder.py
n = int(input("Введите число: "))

for i in range(1, n + 1):
    for j in range(1, i + 1):
        print(j, end=" ")
    print()
4

Решите задание 3: удаление повторяющихся символов

Накапливайте уникальные символы в новом списке.

📄 task_03_remove_duplicates.py
text = input("Введите строку: ")
unique_chars = []

for char in text:
    if char not in unique_chars:
        unique_chars.append(char)

result = "".join(unique_chars)
print("Результат:", result)
5

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

python task_01_multiplication_table.py
python task_02_number_ladder.py
python task_03_remove_duplicates.py

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

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

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

🐛 Отладка в VS Code

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

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

git add lesson-19/
git commit -m "lesson-19: summary session 5 - loops and lists"
git push

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

  • Убедитесь, что venv активирован перед запуском.
  • Не коммитьте папку venv/ — она указана в .gitignore.
  • Для таблицы умножения используйте вложенные циклы for.
  • Помните, что range(start, stop) не включает stop.
  • Для удаления дубликатов используйте проверку if char not in unique_chars перед добавлением.
Проверить по документации: f-strings и форматирование вывода (:4) выходят за рамки исходного занятия, но являются стандартными возможностями Python 3.