📋 Формулировка задания
Исходное задание из LMS:
- Таблица умножения. Напишите программу, которая выводит таблицу умножения для чисел от 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 - Лестница чисел. Напишите программу, которая принимает число n и выводит "лестницу" из чисел: каждая строка содержит числа от 1 до номера строки.
Введите число: 5 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 - Удаление повторяющихся символов. Напишите программу, которая принимает строку и удаляет из неё все повторяющиеся символы, сохраняя только первые вхождения.
Введите строку: Python programming Результат: Python prgami
🔧 Шаг 0. Подготовка окружения
Перед началом работы настройте окружение. Эти шаги одинаковы для всех уроков курса.
.gitignore, единая история, легко переключаться между уроками.
Создайте (или откройте) рабочую папку
В VS Code нажмите Ctrl+K Ctrl+O → выберите или создайте папку python-fundamentals-practice. Это будет корень вашего учебного репозитория.
# Или в терминале VS Code (Ctrl + `):
mkdir python-fundamentals-practice
cd python-fundamentals-practice
Инициализируйте 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: базовая структура репозитория"
Создайте папку для текущего урока
mkdir -p lesson-19
cd lesson-19
Создайте виртуальное окружение (venv)
# Windows
python -m venv venv
venv\Scriptsctivate
# Mac / Linux
python3 -m venv venv
source venv/bin/activate
После активации в начале строки терминала появится (venv). Все дальнейшие команды выполняйте внутри venv.
Создайте ветку для задания
cd ..
git checkout -b lesson/19-summary-session-5
git push -u origin lesson/19-summary-session-5
Именование веток: lesson/XX-краткое-название.
🛠️ Шаги выполнения заданий
Создайте файлы для заданий
task_01_multiplication_table.py
task_02_number_ladder.py
task_03_remove_duplicates.py
Решите задание 1: таблица умножения
Используйте вложенные циклы и форматированный вывод.
n = int(input("Введите число: "))
for i in range(1, n + 1):
for j in range(1, n + 1):
print(f"{i * j:4}", end="")
print()
Решите задание 2: лестница чисел
n = int(input("Введите число: "))
for i in range(1, n + 1):
for j in range(1, i + 1):
print(j, end=" ")
print()
Решите задание 3: удаление повторяющихся символов
Накапливайте уникальные символы в новом списке.
text = input("Введите строку: ")
unique_chars = []
for char in text:
if char not in unique_chars:
unique_chars.append(char)
result = "".join(unique_chars)
print("Результат:", result)
Проверьте каждый файл в VS Code
python task_01_multiplication_table.py
python task_02_number_ladder.py
python task_03_remove_duplicates.py
Проверьте граничные случаи: 0, 1, отрицательные числа, пустую строку.
🧪 Как проверить решение
- Активируйте venv:
venv\Scriptsctivate(Windows) илиsource venv/bin/activate(Mac/Linux). - Запустите каждый файл:
python task_XX_....py. - Убедитесь, что нет ошибок и вывод соответствует условию.
- Проверьте граничные случаи: n=0, n=1, строка без повторов, строка из одинаковых символов.
🐛 Отладка в VS Code
- Поставьте точку останова кликом слева от номера строки.
- Нажмите F5 или выберите «Run → Start Debugging».
- Используйте панель Debug (переменные, стек вызовов, консоль).
- Проверьте Terminal на наличие traceback — Python показывает номер строки с ошибкой.
- Если список меняется не так, проверьте, что вы меняете элемент по индексу, а не переменную цикла.
💾 Сохранение работы
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перед добавлением.
:4) выходят за рамки исходного занятия, но являются стандартными возможностями Python 3.