Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/wp-includes/functions.php on line 6131 Python. Строки и срезы – 100балльный репетитор

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

11 класс

Поделиться статьей:

Informatics

Введение

В этой статье мы познакомимся с типом данных «строка» в 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балльного репетитора” по информатике ЕГЭ

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

В 100б ты пробьёшь свой
максимум на экзаменах

наши лучшие курсы

Выбери подходящий курс и предмет, чтобы прокачаться и сдать ОГЭ на «5», а ЕГЭ на 80+ баллов

Выбрать курс

бесплатные материалы

Курсы, вебы, чек-листы — всё за 0 ₽

Забрать за 0 ₽

Интенсив по поступлению

Запишись на интенсив по поступлению, чтобы
взять из ЕГЭ максимум и попасть в вуз мечты

Записаться
В 100балльном репетиторе ты пробьёшь свой максимум на экзаменах

Преимущества подготовки
в 100балльном

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

18
выпускников сдали ЕГЭ
на 200 из 200 в 2024 году

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

14%
стобалльников России — наши выпускники

2 347
выпускника сдали ЕГЭ на 100 баллов

Преимущества подготовки в 100балльном

Запишись
на бесплатный
вводный урок

Познакомим с преподавателями и платформой

Расскажем про учёбу

Поможем поставить цель

  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс
Запись на вводный урок