ЯдроКодаподготовка к экзаменам
Учебная платформа

Загружаем материалы

Подготавливаем материалы и навигацию по разделу.

Текстовые задачи: нормализация, разбор и проверка строк

Автор: · Обновлено

Строка — это последовательность символов. В задачах по информатике строки используют для работы со словами, кодами, паролями, номерами, двоичными записями и текстовыми шаблонами.

Строку можно перебирать так же, как список:

word = input()
vowels = 'аеёиоуыэюя'
count = 0

for char in word.lower():
    if char in vowels:
        count += 1

print(count)

Программа считает гласные буквы. Здесь важны две идеи: метод lower() приводит строку к нижнему регистру, а операция in проверяет наличие символа в наборе.

Полезные операции со строками

Задачи на строки

Типовые школьные задачи: проверить палиндром, посчитать символы, найти самое длинное слово, заменить фрагменты, обработать двоичную строку, определить корректность кода.

text = input().replace(' ', '').lower()

if text == text[::-1]:
    print('палиндром')
else:
    print('не палиндром')

Строка как конвейер преобразований

Надёжное решение разделяет три шага: нормализацию, проверку формата и подсчёт ответа. Нормализация убирает только те различия, которые условие объявило несущественными: например, регистр букв. Затем программа проверяет допустимые символы и длину, и лишь после этого преобразует фрагменты в числа или накапливает статистику.

Приём replace(' ', '') из примера подходит, только если пробелы действительно не влияют на ответ. В задаче о фиксированных позициях он сдвинет индексы и изменит данные. Аналогично, split() объединяет последовательности пробельных символов, а split(',') сохраняет пустое поле между двумя запятыми — для табличного формата это разные модели входа.

Полезный контрпример для проверки — строка, состоящая только из пробелов, или код AB-042 с лишним разделителем. Такие тесты показывают, не смешаны ли очистка входа и проверка его структуры.

Срез [::-1] строит строку в обратном порядке. Такой короткий прием полезен, но важно понимать идею: палиндром читается одинаково слева направо и справа налево.

Практикум: нормализация школьных логинов

Получите строку с логином, удалите пробелы по краям, приведите буквы к нижнему регистру и проверьте правила: длина от 5 до 16 символов, первый символ — буква, остальные состоят из латинских букв, цифр или подчёркивания. Подготовьте случаи Ivan_7 , пустую строку, логин с дефисом и логин длиной 17 символов. Не смешивайте нормализацию с проверкой: сначала получите каноническую строку, затем применяйте правила. Сообщение об ошибке должно указывать конкретно нарушенное ограничение.

Контрольная точка

Почему проверка исходной строки и нормализованной строки может дать разные ответы? Определите, какие изменения допустимы автоматически, а какие — например замена запрещённого символа — скроют ошибку пользователя.

Частые вопросы

Почему strip не удаляет пробелы внутри строки?

strip() очищает только начало и конец, сохраняя внутренние символы. Это безопасно для случайных пробелов вокруг ввода. Если внутренние пробелы запрещены, их нужно обнаружить отдельной проверкой, а не незаметно менять значение.

Источники