"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.
Строка символов — это последовательность букв, цифр, пробелов и знаков, которую программа воспринимает как одно значение. Строки нужны для хранения и обработки имён, сообщений, слов и любого другого текста. В Python строку записывают в кавычках, её длину находят функцией len, отдельные символы получают по индексам, а части строк объединяют конкатенацией или выбирают срезом. Главное — помнить о нулевой индексации и различии между текстом и числами.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Строка символов — упорядоченная последовательность символов, которую программа обрабатывает как единое значение. В неё могут входить буквы, цифры, пробелы, знаки препинания и другие знаки. Строки нужны, чтобы хранить и изменять текст: имя пользователя, сообщение или название файла.
Длина строки — количество символов в ней. При подсчёте учитываются не только буквы, но и пробелы, цифры и знаки препинания. Знание длины помогает обратиться к нужной позиции и проверить, сколько символов введено.
Индекс символа — номер его позиции в строке. В Python нумерация начинается с нуля: первый символ имеет индекс 0, второй — индекс 1. Индексы позволяют получить один символ или указать границы части строки.
Конкатенация — соединение нескольких строк в одну новую строку. Оператор + при этом не складывает значения, а записывает их последовательно. Это нужно, например, для составления приветствия из имени и постоянного текста.
В программе строку записывают в одинарных или двойных кавычках: s = "Привет". Кавычки обозначают, где начинается и заканчивается текстовое значение, чтобы Python не принял слово за имя переменной. Поэтому в самой строке их нет, если только кавычка специально не добавлена как символ.
Функция len получает строку и возвращает число символов: len(s). Например, в строке "А, Б!" шесть символов: буква, запятая, пробел, буква и восклицательный знак — всего пять; точный подсчёт показывает, что здесь пять символов. Такой подсчёт выполняется по каждому знаку, а не только по буквам, поэтому пробелы нельзя пропускать.
Чтобы получить символ, после имени строки пишут индекс в квадратных скобках: s[0]. Нулевая индексация удобна для компьютера, потому что индекс означает расстояние от начала последовательности. Если длина равна n, позиции имеют номера от 0 до n - 1, поэтому индекс n уже указывает за пределы строки.
Конкатенация выполняется оператором +: "Добрый " + "день" даёт "Добрый день". Здесь символы второй строки просто добавляются после символов первой, а числа не складываются. Строку и число напрямую объединить нельзя, поэтому число сначала превращают в текст функцией str(), например "Баллы: " + str(10).
Срез позволяет выбрать часть строки записью s[a:b]. В результат попадают символы начиная с индекса a и до индекса b, но символ с индексом b не включается. Такая граница удобна тем, что длина среза равна b - a, а соседние срезы можно соединять без повторения символа на границе.
Таблица показывает форму записи и результат основных операций. При чтении записи сначала определите, что хранится в переменной, а затем проверьте индексы и границы среза.
| Действие | Запись | Что получается |
|---|---|---|
| Задание строки | s = "текст" | Переменная s хранит строку |
| Определение длины | len(s) | Количество символов в s |
| Получение символа по индексу | s[i] | Символ с индексом i |
| Соединение строк | s1 + s2 | Новая строка из s1 и s2 |
| Получение среза | s[a:b] | Символы от a до b - 1 |
Дана строка s = "информатика". Требуется найти её длину. Сначала рассматриваем значение именно как строку и считаем все записанные символы, не включая кавычки.
Ответ: len(s) = 11.
Дана та же строка s = "информатика". Нужно вывести первый и последний символы, поэтому сначала определяем длину, а затем выбираем позиции по правилам индексации.
Ответ: первый символ — «и», последний — «а». Индекс 11 использовать нельзя: допустимые индексы идут от 0 до 10.
Пусть name = "Иван", а surname = "Петров". Нужно получить полное имя и вывести инициалы, поэтому отдельно соединяем слова и отдельно берём их первые символы.
Ответ: full = «Иван Петров», initials = «И. П.»
Считать кавычки символами строки. Так происходит, когда ученик подсчитывает весь текст записи, включая служебные знаки. Проверьте себя: функция len считает только содержимое между кавычками, если сами кавычки не записаны внутри строки.
Использовать индекс, равный длине строки. Ошибка появляется из-за привычки считать позиции с единицы. Если len(s) = n, последний допустимый индекс равен n - 1; проверьте диапазон от 0 до n - 1.
Забывать о пробелах. При подсчёте их иногда пропускают, а при конкатенации не добавляют между словами. Проверьте запись глазами: для разделения частей нужен отдельный пробел, например " ".
Соединять строку и число напрямую. Это приводит к ошибке типов, потому что текст и число являются разными видами данных. Перед соединением проверьте типы и преобразуйте число функцией str().
Перед изучением строк нужны знания о типах данных, переменных и присваивании. Именно тип определяет, какие операции допустимы: число можно складывать, а строки — соединять.
Условия, циклы и ввод-вывод помогают обрабатывать текстовые данные. С их помощью можно подсчитывать символы, искать фрагменты и проверять, правильно ли пользователь ввёл данные.
Входят ли кавычки в длину строки?
Нет. Кавычки только показывают границы строкового значения в программе и не являются его символами. Например, длина строки "дом" равна 3.
Почему индекс первого символа равен нулю?
В Python индекс показывает смещение символа от начала строки. Первый символ находится без смещения, поэтому его индекс равен 0, а не 1.
Как получить последний символ строки?
Можно использовать индекс len(s) - 1, потому что нумерация начинается с нуля. Например, для строки s последний символ записывают как s[len(s) - 1].
Чем конкатенация отличается от сложения чисел?
Конкатенация соединяет строки последовательно, не выполняя арифметическое сложение. Например, "2" + "3" даёт "23", а 2 + 3 даёт число 5.
Как взять из строки только её часть?
Для этого используют срез: s[начало:конец]. В результат входят символы от начального индекса до конечного, но символ с индексом конца не включается.
§ 28. Строки символов