📋 Формулировка задания
Исходное задание из 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: базовая структура репозитория"
Создайте папку для текущего урока
# Структура: lesson-XX/
mkdir -p lesson-16
cd lesson-16
Создайте виртуальное окружение (venv)
# Windows (PowerShell / CMD)
python -m venv venv
venv\Scripts\activate
# Mac / Linux
python3 -m venv venv
source venv/bin/activate
После активации в начале строки терминала появится (venv). Все дальнейшие команды выполняйте внутри venv.
Создайте ветку для задания
# Вернитесь в корень репозитория
cd ..
# Создайте и переключитесь на ветку
git checkout -b lesson/16-for-loop
# Отправьте ветку на удалённый репозиторий (если настроен)
git push -u origin lesson/16-for-loop
Именование веток: lesson/XX-краткое-название. Это позволяет легко находить нужный урок.
🛠️ Шаги выполнения задания
Теперь, когда окружение готово, приступайте к решению.
Задание 1: таблица умножения
Создайте файл multiplication_table.py. Используйте два вложенных цикла for: внешний по строкам, внутренний по столбцам. Для ровных столбцов используйте форматирование через f-string.
n = int(input("Введите число: "))
for i in range(1, n + 1):
for j in range(1, n + 1):
print(f"{i * j:4}", end="")
print()
Проверка в VS Code:
- Запустите:
python multiplication_table.py. - Введите
5→ таблица должна быть 5×5 с ровными столбцами. - Введите
1→ должно вывестись1. - Введите
10→ таблица 10×10, числа выровнены.
Задание 2: лестница чисел
Создайте файл number_ladder.py. Внешний цикл отвечает за номер строки, внутренний — за числа от 1 до номера строки.
n = int(input("Введите число: "))
for i in range(1, n + 1):
for j in range(1, i + 1):
print(j, end=" ")
print()
Проверка в VS Code:
- Запустите:
python number_ladder.py. - Введите
5→ пять строк, вi-й строке числа от1доi. - Введите
1→ одна строка с числом1. - Введите
0→ ничего не выводится.
Задание 3: удаление повторяющихся символов
Создайте файл remove_duplicates.py. Создайте пустую строку-результат и добавляйте в неё символ, только если его там ещё нет.
text = input("Введите строку: ")
result = ""
for char in text:
if char not in result:
result += char
print(f"Результат: {result}")
Проверка в VS Code:
- Запустите:
python remove_duplicates.py. - Введите
Python programming→ ожидаетсяPython prgami. - Введите
aaaa→ ожидаетсяa. - Введите пустую строку → ожидается пустой результат.
✅ Полные решения
Ниже приведены полные решения всех трёх заданий. Совет: попробуйте выполнить самостоятельно, прежде чем смотреть ответ.
Задание 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("Введите строку: ")
result = ""
for char in text:
if char not in result:
result += char
print(f"Результат: {result}")
🧪 Как проверить решение
- Активируйте venv:
venv\Scripts\activate(Windows) илиsource venv/bin/activate(Mac/Linux). - Запустите каждый файл:
python multiplication_table.py,python number_ladder.py,python remove_duplicates.py. - Проверьте вывод в терминале — не должно быть ошибок.
- Проверьте граничные случаи:
n = 0,n = 1, пустая строка, строка из одинаковых символов.
🐛 Отладка в VS Code
Если что-то не работает:
- Поставьте точку останова (breakpoint) кликом слева от номера строки.
- Нажмите F5 или выберите «Run → Start Debugging».
- Используйте панель Debug (переменные, стек вызовов, консоль).
- Проверьте Terminal на наличие traceback — Python показывает номер строки с ошибкой.
- Если вложенные циклы работают не так, проверьте отступы: внутренний цикл должен быть полностью внутри внешнего.
💾 Сохранение работы
# Добавьте все файлы урока
git add lesson-16/
# Сделайте коммит с осмысленным сообщением
git commit -m "lesson-16: for loop, range, nested loops"
# Отправьте на GitHub / GitLab
git push
💡 Советы и типичные ошибки
- Убедитесь, что venv активирован перед запуском.
- Не коммитьте папку
venv/— она указана в.gitignore. - Для таблицы умножения используйте ширину формата с запасом, например
{i * j:4}, чтобы столбцы были ровными. - Помните, что
range(a, b)не включаетb; поэтому для чисел от1доnиспользуйтеrange(1, n + 1). - В задаче на удаление повторов строка в Python неизменяема, поэтому конкатенация создаёт новую строку. Для учебных задач это нормально; в больших объёмах данных лучше использовать множество.