На Горох
Информатика, 8 класс

§ 29. Работа с текстом

"Информатика", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 29. Работа с текстом

Кратко о теме

Строка — это упорядоченная последовательность символов: букв, цифр, пробелов и знаков. В программе строки нужны, чтобы хранить и обрабатывать слова, имена и другие текстовые данные. У каждого символа есть индекс, поэтому к нему можно обратиться отдельно, а с помощью среза — выбрать часть текста. Длина строки помогает узнать число символов и не выходить за границы при обработке.

Объяснение темы

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

Определения и обозначения

Строка — последовательность символов, заключённая в кавычки. В программе строковое значение записывают, например, как "Привет" или 'Привет'; кавычки показывают, где текст начинается и заканчивается. Строки нужны, чтобы хранить слова, предложения и другие текстовые данные.

Символ — отдельный элемент строки: буква, цифра, пробел или знак препинания. Например, в строке "дом 8" есть буквы, пробел и цифра, и каждый из них занимает своё место. Это понятие помогает разбирать текст на части и находить нужный элемент.

Индекс — номер символа в строке. В языках программирования отсчёт обычно начинается с нуля: первый символ имеет индекс 0, второй — 1. Индексы нужны, чтобы программа могла обратиться к определённому месту в последовательности.

Срез — часть строки, полученная выбором символов по диапазону индексов. Его записывают в квадратных скобках, указывая начало и конец, например s[1:4]. Срез позволяет извлечь фрагмент текста, не переписывая всю строку.

Как это устроено

Строка хранит символы в определённом порядке: у каждого есть место относительно начала текста. Поэтому одинаковые символы могут иметь разные индексы, если находятся в разных позициях. Индекс позволяет программе находить элемент не по его значению, а по месту в строке; это особенно полезно, когда буквы повторяются.

Чтобы получить один символ, после имени строки указывают его индекс в квадратных скобках: s[i]. Например, если s равно "мир", то s[1] — это "и", потому что перед ним находится один символ. Индекс должен указывать на существующую позицию: если длина строки равна 3, допустимы индексы 0, 1 и 2. Обращение по индексу 3 вызовет ошибку, поскольку символа на этой позиции нет.

Срез записывают как s[a:b], где a — индекс первого включённого символа, а b — граница, до которой выбирают элементы. Конечная граница не включается: при s[1:4] в результат попадут символы с индексами 1, 2 и 3. Такой способ удобен, потому что длина полученного фрагмента равна разности границ, если обе они находятся в пределах строки.

Строки можно соединять оператором +: выражение "доброе " + "утро" даёт "доброе утро". При этом символы не складываются численно, а выстраиваются друг за другом. Оператор * повторяет строку заданное число раз: "ла" * 3 даёт "лалала". Поэтому смысл операции зависит от типа данных: для чисел + выполняет сложение, а для строк — соединение.

Функция len(s) возвращает количество символов в строке s. Она считает все элементы, в том числе пробелы и знаки препинания, поэтому длина не всегда совпадает с числом букв. Зная длину n, можно определить индекс последнего символа как n − 1 и проверить границы перед обращением к элементу. Это помогает избежать ошибки, когда программа пытается прочитать символ за концом строки.

Основные действия со строками

В таблице собраны записи для основных операций со строками. В обозначениях s — строка, a и b — границы среза, а k — число повторений. Сначала определите, нужен ли отдельный символ, фрагмент текста или действие над строкой целиком.

ДействиеЗаписьРезультат или назначение
Получение символа по индексуs[i]Символ на позиции i
Получение части строкиs[a:b]Фрагмент от a до b, не включая b
Определение длиныlen(s)Количество символов в строке
Объединение строкs1 + s2Строки, соединённые друг за другом
Повторение строкиs * kСтрока, повторённая k раз

Разбор задач

Задача 1. Дана строка "Информатика". Нужно получить её первый и последний символы. Сначала определим длину строки, чтобы выбрать правильный индекс последней позиции, а затем проверим результат по порядку букв.

  1. Первый символ находится под индексом 0: s[0] даёт "И".
  2. В слове 11 символов, поэтому последний индекс равен 11 − 1 = 10.
  3. Обращаемся к s[10] и получаем "а".

Ответ: первый символ — "И", последний — "а". Длина строки нужна здесь, чтобы не угадывать индекс последней буквы.

Задача 2. Дана строка "программирование". Получить символы с номерами от 3 до 7, понимая границы как диапазон индексов. Сначала переводим условие в запись среза, затем учитываем, что последний указанный индекс не войдёт в результат.

  1. Записываем срез s[3:7]: начало 3 включается, граница 7 — нет.
  2. В строку попадут символы с индексами 3, 4, 5 и 6.
  3. В слове это "г", "р", "а" и "м"; соединяем их в том же порядке.

Ответ: срез равен "грам". Если бы требовался символ с индексом 7, границу среза пришлось бы поставить на 8.

Задача 3. Даны имя "Анна" и фамилия "Иванова". Нужно сформировать полное имя, узнать его длину и вывести часть строки с индексами от 0 до 3. Между именем и фамилией добавим пробел, иначе слова соединятся без разделителя.

  1. Создаём строку: full_name = "Анна" + " " + "Иванова".
  2. Получаем "Анна Иванова" и вычисляем len(full_name): четыре буквы имени, пробел и семь букв фамилии, всего 12 символов.
  3. Берём срез full_name[0:4]; конечная граница 4 не включается, поэтому получаем первые четыре символа.

Ответ: полное имя — "Анна Иванова", его длина — 12, заданный срез — "Анна". Пробел тоже считается символом и входит в длину.

Типичные ошибки

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

Индекс, равный длине строки, нельзя использовать для получения одного символа: при длине 5 существуют позиции от 0 до 4. Часто длину принимают за номер последнего элемента, хотя она показывает количество элементов. Перед обращением проверьте условие: индекс должен быть меньше len(s).

В срезе конечная граница не включается, поэтому запись s[1:4] не возвращает символ с индексом 4. Ошибку допускают, перенося привычное понимание диапазона на запись программы. Чтобы проверить срез, перечислите индексы от начала до числа перед конечной границей.

Сложение строк соединяет текст, а не складывает его как числа: "2" + "3" даёт "23", а не 5. Путаница возникает, когда внешне строка состоит из цифр. Проверьте, в кавычках ли значения: кавычки обозначают текст; для числового сложения понадобятся числа, а не строки.

Связь с другими темами

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

Строки и индексы применяются при обработке данных, которые вводит пользователь. С их помощью можно находить и извлекать фрагменты, а затем использовать их в поиске или преобразовании текста. Эти операции пригодятся, например, при разборе имени, слова или короткого сообщения.

Что запомнить

  • Строка состоит из упорядоченных символов.
  • Индексы символов начинаются с нуля.
  • Длина строки равна числу символов в ней.
  • Срез позволяет получить фрагмент строки.
  • В срезе конечная граница не включается.
  • Операция сложения строк соединяет их.

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

Почему первый символ строки имеет индекс 0?

Так устроена нумерация элементов в языках программирования: отсчёт начинается с нуля. Поэтому индекс показывает, сколько символов расположено перед нужным.

Как обратиться к последнему символу строки?

Если длина строки равна n, индекс последнего символа — n − 1. В Python можно также использовать индекс −1, который обозначает последний символ.

Включается ли конечный индекс в срез?

Нет, символ с конечным индексом в результат не входит. Например, срез s[2:5] включает символы с индексами 2, 3 и 4.

Что произойдёт, если указать несуществующий индекс?

При обращении к одному символу по индексу, которого нет в строке, программа выдаст ошибку. Поэтому сначала проверьте длину строки и убедитесь, что индекс меньше неё.

Как узнать, сколько символов содержится в строке?

Для этого используют функцию len: запись len(s) возвращает число символов в строке s. В длину входят пробелы и знаки препинания.

Спросить по теме параграфа

§ 29. Работа с текстом

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика", Поляков К.Ю., Еремин Е.А.