"Информатика", Поляков К.Ю., Еремин Е.А.
Строка — это упорядоченная последовательность символов: букв, цифр, пробелов и знаков. В программе строки нужны, чтобы хранить и обрабатывать слова, имена и другие текстовые данные. У каждого символа есть индекс, поэтому к нему можно обратиться отдельно, а с помощью среза — выбрать часть текста. Длина строки помогает узнать число символов и не выходить за границы при обработке.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Строка — последовательность символов, заключённая в кавычки. В программе строковое значение записывают, например, как "Привет" или 'Привет'; кавычки показывают, где текст начинается и заканчивается. Строки нужны, чтобы хранить слова, предложения и другие текстовые данные.
Символ — отдельный элемент строки: буква, цифра, пробел или знак препинания. Например, в строке "дом 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. Дана строка "Информатика". Нужно получить её первый и последний символы. Сначала определим длину строки, чтобы выбрать правильный индекс последней позиции, а затем проверим результат по порядку букв.
Ответ: первый символ — "И", последний — "а". Длина строки нужна здесь, чтобы не угадывать индекс последней буквы.
Задача 2. Дана строка "программирование". Получить символы с номерами от 3 до 7, понимая границы как диапазон индексов. Сначала переводим условие в запись среза, затем учитываем, что последний указанный индекс не войдёт в результат.
Ответ: срез равен "грам". Если бы требовался символ с индексом 7, границу среза пришлось бы поставить на 8.
Задача 3. Даны имя "Анна" и фамилия "Иванова". Нужно сформировать полное имя, узнать его длину и вывести часть строки с индексами от 0 до 3. Между именем и фамилией добавим пробел, иначе слова соединятся без разделителя.
Ответ: полное имя — "Анна Иванова", его длина — 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. Работа с текстом