Обработка символьных строк

Строки в Python: индексация, срезы, методы find, replace, upper, lower, split, join. Иммутабельность строк. Решение задач ОГЭ на обработку строк.

Обработка символьных строк

Определение

Строка — упорядоченная последовательность символов. В Python строки представлены типом str и являются неизменяемыми (immutable). Это значит, что после создания строку нельзя изменить — любая операция «изменения» создаёт новую строку.

Строки создаются в кавычках:

s1 = 'Привет'
s2 = "Мир"
s3 = '''Многострочная
строка'''

Пример

Индексация и срезы

s = "Информатика"
print(s[0])     # 'И' — первый символ
print(s[-1])    # 'а' — последний символ
print(s[2:7])   # 'форма' — срез с 2 по 6
print(s[:4])    # 'Инфо' — с начала до 3
print(s[5:])    # 'матика' — с 5 до конца
print(s[::2])   # 'Ифраиа' — каждый второй

Основные методы строк

s = "  Python Programming  "

# Преобразование регистра
print(s.upper())          # '  PYTHON PROGRAMMING  '
print(s.lower())          # '  python programming  '
print(s.title())          # '  Python Programming  '

# Поиск
print(s.find("Pro"))      # 9 — индекс первого вхождения
print(s.find("Java"))     # -1 — не найдено
print(s.count("m"))       # 2 — количество вхождений

# Замена
print(s.replace("Python", "Java"))  # '  Java Programming  '

# Удаление пробелов
print(s.strip())          # 'Python Programming'

# Разделение и соединение
words = "яблоко,груша,банан".split(",")
print(words)              # ['яблоко', 'груша', 'банан']
print(" - ".join(words))  # 'яблоко - груша - банан'

Проверка символов

s = "Python3"
print(s.isalpha())    # False — есть цифра
print(s.isdigit())    # False — есть буквы
print("123".isdigit())  # True
print("abc".isalpha())  # True

Обозначения

ОперацияСинтаксисПримерРезультат
Длина строкиlen(s)len("Привет")6
Доступ по индексуs[i]"Привет"[1]'р'
Срезs[i:j]"Привет"[1:4]'рив'
Поиск подстрокиs.find(p)"Привет".find("ив")2
Заменаs.replace(a,b)"abba".replace("b","c")'acca'
Верхний регистрs.upper()"abc".upper()'ABC'
Нижний регистрs.lower()"ABC".lower()'abc'
Разделениеs.split(sep)"a,b,c".split(",")['a','b','c']
Соединениеsep.join(list)",".join(["a","b"])'a,b'
Удаление пробеловs.strip()" a ".strip()'a'

Школьный алгоритмический язык: подсчёт букв «а» в строке

алг ПодсчётБукв (лит s)
арг s
рез цел
нач
  цел i, count
  count := 0
  нц для i от 1 до длин(s)
    если s[i] = "а" то
      count := count + 1
    все
  кц
  знач := count
кон

Важно!

Примеры вопросов из тренажёра

  1. Q: Дан фрагмент: s = "информатика". Чему равен s[2]?

    A: верный ответ — ф

    Объяснение: Индексация с 0: s[0]='и', s[1]='н', s[2]='ф'.

  2. Q: Что вернёт выражение "Python".find("th")?

    A: верный ответ — 1

    Объяснение: 'P'(0) 'y'(1) 't'(2) 'h'(3) 'o'(4) 'n'(5). 'th' начинается на индексе 1.

  3. Q: Что выведет программа? s = "барабан" print(s.replace("а", "о"))

    A: верный ответ — боробон

    Объяснение: replace('а','о') заменяет все 'а' на 'о': б(а)роб(а)н → боробон.

  4. Q: Что выведет программа? s = "a,b,c,d" parts = s.split(",") print(len(parts))

    A: верный ответ — 4

    Объяснение: split(',') делит строку на 4 части: ['a','b','c','d']. len = 4.

  5. Q: Какая операция вызовет ошибку?

    A: верный ответ — s = "abc"; s[0] = 'd'

    Объяснение: Строки неизменяемы. s[0] = 'd' вызовет TypeError.

Пройти тему «Обработка символьных строк» в приложении