📋 Формулировка задания
Исходное задание из LMS:
-
Проверка кодировки. Напишите программу, которая принимает от пользователя один символ и выводит его код в таблице Unicode и его принадлежность к диапазону ASCII (True/False).
Введите символ: A Код Unicode: 65 ASCII символ: True -
Подстрока с заполнением. Напишите программу, которая принимает строку и индексы начала и конца. Программа должна вывести подстроку на указанных позициях. Также если конечный индекс выходит за пределы строки, программа заполняет недостающие символы символами
_.Введите строку: Программирование Введите начальный индекс: 3 Введите конечный индекс: 20 Подстрока: граммирование_____💡 На заметку: количество символов_зависит от фактической длины строки. В Python строка"Программирование"содержит 16 символов, поэтому приend=20добавится 4 символа_. -
Подсчёт символа. Напишите программу, которая принимает строку и символ, а затем подсчитывает, сколько раз символ встречается в строке.
Введите строку: Hello, world! Введите символ: o Символ o встречается 2 раз(а). -
Инвертирование строки без цифр. Напишите программу, которая принимает строку и выводит её в обратном порядке, пропуская все цифры.
Введите строку: n52uFs6Inoh67ty8P Результат: PythonIsFun
🔧 Шаг 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-14
cd lesson-14
Создайте виртуальное окружение (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/14-python-strings-intro
# Отправьте ветку на удалённый репозиторий (если настроен)
git push -u origin lesson/14-python-strings-intro
Именование веток: lesson/XX-краткое-название. Это позволяет легко находить нужный урок.
🛠️ Шаги выполнения задания
Теперь, когда окружение готово, приступайте к решению.
Задание 1: проверка кодировки
Создайте файл check_encoding.py. Прочитайте один символ, получите его код через ord() и проверьте, попадает ли код в диапазон 0–127.
letter = input("Введите символ: ")
unicode_code = ord(letter)
is_ascii = 0 <= unicode_code <= 127
print("Код Unicode:", unicode_code)
print("ASCII символ:", is_ascii)
Проверка в VS Code:
- Запустите:
python check_encoding.py. - Введите
A→ ожидаетсяКод Unicode: 65иASCII символ: True. - Введите
Я→ ожидается код больше127иASCII символ: False.
Задание 2: подстрока с заполнением
Создайте файл substring_with_padding.py. Получите строку и два индекса, извлеките срез и, если конечный индекс больше длины, добавьте недостающие символы _.
text = input("Введите строку: ")
start_index = int(input("Введите начальный индекс: "))
end_index = int(input("Введите конечный индекс: "))
substring = text[start_index:end_index]
if end_index > len(text):
substring += "_" * (end_index - len(text))
print("Подстрока:", substring)
Проверка в VS Code:
- Запустите:
python substring_with_padding.py. - Введите
Программирование, начальный3, конечный20→ ожидаетсяграммирование_____. - Введите
Python, начальный0, конечный6→ ожидаетсяPython.
Задание 3: подсчёт символа
Создайте файл count_symbol.py. Переберите строку в цикле и увеличивайте счётчик при совпадении.
text = input("Введите строку: ")
symbol = input("Введите символ: ")
count = 0
for char in text:
if char == symbol:
count += 1
print(f"Символ {symbol} встречается {count} раз(а).")
Проверка в VS Code:
- Запустите:
python count_symbol.py. - Введите
Hello, world!и символo→ ожидается2. - Введите
bananaи символa→ ожидается3.
Задание 4: инвертирование строки без цифр
Создайте файл reverse_without_digits.py. Пройдите строку в обратном порядке и добавляйте в результат только нецифровые символы.
text = input("Введите строку: ")
result = ""
for char in text[::-1]:
if not char.isdigit():
result += char
print("Результат:", result)
Проверка в VS Code:
- Запустите:
python reverse_without_digits.py. - Введите
n52uFs6Inoh67ty8P→ ожидаетсяPythonIsFun. - Введите
123abc→ ожидаетсяcba.
✅ Полные решения
Ниже приведены полные решения всех четырёх заданий. Совет: попробуйте выполнить самостоятельно, прежде чем смотреть ответ.
Задание 1: проверка кодировки
letter = input("Введите символ: ")
unicode_code = ord(letter)
is_ascii = 0 <= unicode_code <= 127
print("Код Unicode:", unicode_code)
print("ASCII символ:", is_ascii)
Задание 2: подстрока с заполнением
text = input("Введите строку: ")
start_index = int(input("Введите начальный индекс: "))
end_index = int(input("Введите конечный индекс: "))
substring = text[start_index:end_index]
if end_index > len(text):
substring += "_" * (end_index - len(text))
print("Подстрока:", substring)
Задание 3: подсчёт символа
text = input("Введите строку: ")
symbol = input("Введите символ: ")
count = 0
for char in text:
if char == symbol:
count += 1
print(f"Символ {symbol} встречается {count} раз(а).")
Задание 4: инвертирование строки без цифр
text = input("Введите строку: ")
result = ""
for char in text[::-1]:
if not char.isdigit():
result += char
print("Результат:", result)
🧪 Как проверить решение
- Активируйте venv:
venv\Scripts\activate(Windows) илиsource venv/bin/activate(Mac/Linux). - Запустите каждый файл:
python check_encoding.py,python substring_with_padding.py,python count_symbol.py,python reverse_without_digits.py. - Проверьте вывод в терминале — не должно быть ошибок.
- Проверьте граничные случаи: пустая строка, индексы за пределами длины, строки без цифр.
🐛 Отладка в VS Code
Если что-то не работает:
- Поставьте точку останова (breakpoint) кликом слева от номера строки.
- Нажмите F5 или выберите «Run → Start Debugging».
- Используйте панель Debug (переменные, стек вызовов, консоль).
- Проверьте Terminal на наличие traceback — Python показывает номер строки с ошибкой.
- Если возникает
IndexError, проверьте, что индекс меньше длины строки.
💾 Сохранение работы
# Добавьте все файлы урока
git add lesson-14/
# Сделайте коммит с осмысленным сообщением
git commit -m "lesson-14: strings, indexing, slicing, encoding"
# Отправьте на GitHub / GitLab
git push
💡 Советы и типичные ошибки
- Убедитесь, что venv активирован перед запуском.
- Не коммитьте папку
venv/— она указана в.gitignore. - Помните, что строки неизменяемы: методы возвращают новые строки.
- Срез
[start:end]не включает символ с индексомend. - Для проверки, является ли символ цифрой, удобен метод
isdigit().