Python. Строки и срезы

0 ~6 мин. Обновлено 15.05.2026
ЕГЭ 11 класс

Введение

В этой статье мы познакомимся с типом данных «строка» в Python. Вы узнаете, как создавать строки, работать с ними с помощью операций, методов и срезов, а также научитесь извлекать нужные символы и изменять текст с помощью встроенных функций.

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

Что такое строка

Строка (string) — это последовательность символов: букв, цифр, знаков препинания.

# Примеры строк
имя = “Анна”
фамилия = ‘Иванова’ # Можно использовать и двойные, и одинарные кавычки
сообщение = “Привет, мир!”
число_как_строка = “123”
пустая_строка = “”

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

Как создавать строки

  1. Простые строки
    строка1 = “Привет”
    строка2 = ‘Мир’
  2. Многострочные строки
    # Тройные кавычки для длинного текста
    текст = “””Это многострочный
    текст, который
    занимает несколько строк”””

Знакомая тебе функция input() всегда возвращает строку, что бы ни ввёл пользователь.

Основные операции со строками

  1. Конкатенация (сложение строк)

    имя = “Мария”
    фамилия = “Петрова”
    полное_имя = имя + ” ” + фамилия
    print(полное_имя) # Вывод: Мария Петрова

    # Складывать можно только строки!
    возраст = 25
    # print(“Мне ” + возраст + ” лет”) # ОШИБКА! Нельзя складывать строку и число
    print(“Мне ” + str(возраст) + ” лет”) # Правильно!

  2. Дублирование (умножение строк)

    смех = “ха”
    много_смеха = смех * 5
    print(много_смеха) # Вывод: хахахахаха

    разделитель = “-” * 30
    print(разделитель) # Вывод: ——————————

  3. Длина строки
    слово = “Питон”
    длина = len(слово) # len() — функция для подсчёта длины (количества ВСЕХ символов в строке)
    print(f”Слово ‘{слово}’ состоит из {длина} символов”)
    # Вывод: Слово ‘Питон’ состоит из 5 символов

Обрати внимание, что в примере выше используется конструкция — f-строка для форматирования вывода.

Что такое f-строка

F-строка — это «умная» строка, которая сама подставляет значения переменных и выполняет вычисления внутри себя.

Представь, что обычная строка — это просто текст в блокноте, а f-строка — это «живой» документ, который автоматически обновляет все числа и имена.

Фигурные скобки {} — это окошко в строку, через которое ты можешь:

  • вставить значение переменной,
  • выполнить вычисление,
  • вызвать функцию.

Задание: создай визитку с помощью f-строк
name = “Алексей”
job = “разработчик”
experience = 3
salary = 150000

# Напиши код, который выведет:
# ======= ВИЗИТКА =======
# Имя: Алексей
# Должность: разработчик
# Опыт: 3 года
# Зарплата: 150,000 руб.
# =======================

Индексы

Каждый символ строки имеет свой индекс, начиная с 0.

  • У первого символа строки индекс равен 0.
  • У второго символа — 1.
  • И так далее до последнего символа.

Пример
word = “apple”
В этой строке пять символов, их индексы: 0, 1, 2, 3, 4.
То есть последний индекс вычисляется по формуле: длина строки − 1.

Как обратиться к символу
Чтобы обратиться к определённому символу, нужно указать имя строки и нужный индекс в квадратных скобках. Например, print(word[0]) выведет a, print(word[2]) выведет p. Таким образом, word[0] возвращает первый символ строки, word[2] — третий символ.

Отрицательная индексация

В Python можно использовать отрицательные индексы для обращения к символам с конца строки.

  • Индекс −1 обозначает последний символ.
  • Индекс −2 — предпоследний, и так далее.
  • Нумерация идёт справа налево, с шагом −1.

Например, print(word[-1]) выведет e (последний символ), а print(word[-3]) выведет p (третий символ с конца).

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

Важно
Попытка обратиться к несуществующему индексу вызовет ошибку IndexError.

Например:
word = “apple”
print(word[10])
Вывод:
IndexError: string index out of range
Это означает, что индекс 10 не существует в строке длиной 5 символов (индексы 0–4).

Срезы

Срезы позволяют получить часть исходной строки по заданным индексам.

Структура среза

подстрока = строка[начало : конец : шаг]

Начало — индекс, с которого начинается срез (включительно).

Конец — индекс, на котором заканчивается срез (не включительно).

Шаг — интервал между элементами.

Срез всегда возвращает новую строку.

numbers = “0123456789”
# Элементы с индекса 2 до 5 (5 не включается)
print(numbers[2:5]) # “234”

Если срез начинается с индекса 0, то ноль можно опустить и ничего не писать:

# С начала до индекса 4
print(numbers[:4]) # “0123”

Если срез идёт до конца, последний индекс можно также опустить:

# С индекса 6 до конца
print(numbers[6:]) # “6789”

Можно создать копию строки:

print(numbers[:]) # “0123456789”

Срез с шагом

Шаг работает аналогично функции range(), по умолчанию он равен единице.

numbers = “0123456789”

# Каждый второй элемент

print(numbers[::2]) # “02468”

# С шагом 3, начиная с индекса 1

print(numbers[1::3]) # “147”

# Обратный порядок (разворот строки)

print(numbers[::-1]) # “9876543210”

Срезы с отрицательными индексами

Отрицательные индексы отсчитываются с конца строки (−1 — последний символ).

numbers = “0123456789”

# Последние 3 элемента

print(numbers[-3:]) # “789”

# Все, кроме последних 3

print(numbers[:-3]) # “0123456”

# С −5 до −2

print(numbers[-5:-2]) # “567”

Особенности работы со срезами

  1. Индексы за пределами строки не вызывают ошибку:
    nums = “123”
    print(nums[1:10]) # “23” — просто обрезается
  2. Пустая строка, если начало >= конца:
    print(nums[3:1]) # “”
  3. При отрицательном шаге начало должно быть >= конца:
    print(nums[3:1:-1]) # “32”

Срезы позволяют гибко извлекать части строки, получать символы через интервалы и разворачивать текст.

Методы строк

Методы строк — это функции, которые вызываются у объектов-строк. Они позволяют искать, подсчитывать, заменять и обрабатывать текст.

Для примера вызовем их у строки s.

1. Поиск символа или подстроки

s.find(искомый элемент, с какого индекса начинаем поиск, каким индексом заканчиваем поиск) — определяет индекс искомого элемента в строке s. Если их несколько, то выводит первый.

s = ‘abacdefabc’
print(s.find(‘a’, 1, 4)) — выведет 2

s.rfind(искомый элемент, с какого индекса начинаем поиск, каким индексом заканчиваем поиск) — определяет индекс искомого элемента в строке s. Если их несколько, то выводит последний.
s = ‘abacdefabc’
print(s.rfind(‘a’)) — выведет 7

Если же искомого символа нет в строке, то python выведет −1:

s = ‘12345’
print(s.rfind(‘a’)) — -1

2. Подсчёт количества вхождений

s.count(искомый элемент) — определяет, сколько раз искомый элемент встречается в строке s.

s = ‘121345’
print(s.count(‘1’)) — выведет 2

s = ‘abc’
print(s.count(‘1’)) — выведет 0

3. Замена элементов

s.replace(заменяемый элемент, на что заменяем, какое количество раз заменяем(k)) — заменяет элементы k раз в строке s.

s = ‘1 2 3 4 5 6 7 8 9’
print(s.replace(‘ ‘, ‘*’, 5)) — выведет 1*2*3*4*5*6 7 8 9

s = ‘1 2 3 4 5 6 7 8 9’
print(s.replace(‘ ‘, ‘*’)) — выведет 1*2*3*4*5*6*7*8*9

Важно: строки в Python — неизменяемый тип данных. Никакую строку нельзя изменить после создания. Каждый раз нужно создавать новую, возможно, на основе исходной (с помощью среза, например).

Задачи на практику

Задача 1. Палиндром-детектив

Напишите программу, которая:

  • запрашивает у пользователя слово с маленькой буквы;
  • проверяет, является ли оно палиндромом (читается одинаково слева направо и справа налево);
  • использует отрицательную индексацию для проверки

word = input()

if word == word[::-1]:

print(f”Слово ‘{word}’ — палиндром!”)

else:

print(f”Слово ‘{word}’ — не палиндром.”)

Задача 2. Секретное сообщение

Напишите программу, которая:

  • принимает от пользователя фразу;
  • выводит только первую, среднюю и последнюю буквы;
  • если букв чётное количество, выводит две средние буквы.

phrase = input(“Введите фразу: “)
length = len(phrase)
# Всегда выводим первую и последнюю буквы
print(f”Первая буква: {phrase[0]}”)
print(f”Последняя буква: {phrase[-1]}”)

# Проверяем чётность длины для выбора средних букв
if length % 2 == 1: # Нечётная длина

middle = length // 2

print(f”Средняя буква: {phrase[middle]}”)

else: # Чётная длина

right = length // 2

left = right – 1

print(f”Две средние буквы: {phrase[left]}{phrase[right]}”)

Задача 3. Поисковик повторений

Напишите программу, которая:

  • запрашивает у пользователя строку и символ для поиска;
  • находит первую и последнюю позицию этого символа в строке, если символов нет — выводит −1;
  • находит количество этого символа во всей строке.

phrase = input()
letter = input()
print(phrase.find(letter))
print(phrase.rfind(letter))
print(phrase.count(letter))

Задача 4. Редактор текста

Напишите программу, которая:

  • запрашивает у пользователя текст и слово для замены;
  • заменяет все вхождения этого слова на “[СЕКРЕТНО]”;
  • использует методы replace() и count().

text = input(“Введите текст: “)
word = input(“Какое слово заменить? “)
# Считаем, сколько раз слово встречается
count = text.count(word)
if count == 0:

print(f”\nСлово ‘{word}’ не найдено в тексте.”)

else:

print(f”Слово ‘{word}’ встречается {count} раз(а)”)

new_text = text.replace(word, “[СЕКРЕТНО]”)

print(f”\nОригинальный текст:\n{text}”)

print(f”\nОтредактированный текст:\n{new_text}”)

Заключение

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

Автор:

Быкова Оксана, методист “100балльного репетитора” по информатике ЕГЭ

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой
Понравилась статья?

С нами ты получишь высокие баллы
на ЕГЭ и ОГЭ

№ 1

по стобалльникам

Мы выпускаем больше всего стобалльников в России (в 2025 году каждый 7-й — наш ученик)

300k+

Учеников поступили в вузы мечты с нашей помощью

10+

лет средний опыт наших преподавателей

Мы знаем, как забрать максимум
на экзамене

Отправим стратегию
подготовки к экзаменам
на бесплатной консультации

  • Оценим текущий уровень знаний
  • Подскажем, с чего начать
  • Дадим понятный план действий
  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс

Нажимая на кнопку «Записаться» вы соглашаетесь на обработку персональных данных

Ракета