Программирование в Python. Работа со строками
В повседневной жизни программисту нужно решать массу задач. Для этих целей идеально подходит язык Python («Пайтон» или «Питон», на русский манер). Резервное копирование, создание игры для Android или для Windows, чтение и сохранение писем из электронной почты – не самые сложные задачи для опытного программиста. А вот для начинающих изучать Python (работу со строками, списками, файлами) покажется сказкой, поскольку методы и функции каждого типа данных облегчают жизнь пользователю.
Что такое строковый тип данных?
«Питон» позволяет работать с числами, символами, файлами, функциями. И трудностей нигде не возникает, поскольку этот язык удобен и прост в своем использовании. Строки в Python – тип данных, позволяющий обрабатывать текстовую информацию. Длина введенного текста может ограничиваться только ресурсами компьютера. Необходимо помнить, что строки – неизменяемый тип данных. Все происходящее с изначальным текстом присваивается новой переменной.
В Python обучение предполагает изучение 2 разновидностей текста: обычные строки (последовательность байтов) и Unicode-string (перечень символов).
В Python скрипты позволяют использовать строковые литералы. Эти символы могут быть записаны с помощью апострофа, кавычек (одинарных или двойных), указанных символов, введенных трижды, к примеру, """apple\ntree""", где \n выполняет роль Enter при наборе текста в обычном текстовом редакторе. Обратная косая черта (обратный слэш) внутри литералов получает особое значение. Она необходима для ввода специальных символов. Следует помнить, что обратный слэш не должен быть последним символом в программной строке, иначе компилятор выдаст ошибку.
Как создать строку?
В Python работа со строками предполагает либо ручной ввод текста в программе, либо вывод приглашения пользователю, чтобы он ввел необходимые символы. Питон считывает полученные данные с помощью стандартной функции input (). Строки в Python состоят из последовательности символов. Узнать их количество можно с помощью функции len (). В Python символ рассматривается как целая строка, длина которой равняется 1.
Любой объект в «Питоне» можно привести к строковому типу данных посредством вызова встроенной функции str (). В Python имеется несколько классов. Чтобы перевести объект из одного типа данных в другой, можно воспользоваться функцией приведения, имя которой совпадает с именем разряда. Так, int переводит в целое число, str в строку, float в вещественный разряд.
Срезы в строках
Иначе они называются слайсами или slices. Срез позволяет извлечь из введенной строки символ, находящийся в указанном промежутке. Слайс невозможно использовать без индексации. Адресация начинается с 0. Если обращаться к строке с конца, то индексация начинается со знака -.
Строка ST | W | O | R | L | D |
Индексация | ST[0] | ST[1] | ST[2] | ST[3] | ST[4] |
Индексация | ST[-5] | ST[-4] | ST[-3] | ST[-2] | ST[-1] |
Различают 3 формы срезов:
- Извлечение одного символа из всей строки St[i], где St – текст, i – номер ячейки.
- Получение отрывка текста, St[a:b], где St – текст, a и b – начало и конец промежутка. A включается в срез, параметр b нет. Если в промежутке не указать b, а поставить двоеточие, то программа вернет отрывок, взятый до конца строки. Если не проставлять параметр a, то слайс берет свое начало с 0 индекса до конечного пункта b.
- Срез St[a:b:d] позволяет выбрать конкретный отрывок в промежутке с началом в a и концом в b с шагом d.
Операции со строками
У пользователя есть возможность использовать в Python функции работы со строками:
- Str(X) – перевод любого объекта в строковый тип данных.
- ST1+ST2 – конкатенация (сложение строк).
- ST*n – повторение ST строки n раз.
- Min [ST] – возвращение минимального значения из кодовой таблицы.
- Len () – определение длины текста.
- Max [ST] – получение максимального значения из таблицы ASCII.
- St1 in St2 – вхождение подстроки St1 в St2. Вернет True, если St1 присутствует в изначальном тексте.
- St1 not in St2 – проверяет отсутствие St1 в St2 и возвращает True при верности утверждения.
Методы строкового типа данных
В Python работа со строками предполагает использование нескольких методов:
- St.find и St.rfind – методы, необходимые для поиска нужного отрывка в введенном тексте. Их отличие в том, что этот процесс начнется с разных концов. Так, St.find ищет с начала, а St.rfind с конца. Методы возвращают индекс первого вхождения искомого отрывка. Можно указывать срезы для поиска в конкретном промежутке.
- St.replace (a_old,b_new) необходим для замены всех вхождений подстроки в введенном тексте. Вместо a_old будет b_new. Если указать дополнительный параметр count (St.replace (a_old,b_new, count)), то замена будет происходить количество раз, не большее, чем count.
- St.count – метод, необходимый для подсчета количества вхождения подстроки S в введенном тексте. Количество пересечений не входит в конечный результат. Можно указать промежуток, на котором будет происходить операция.
- St.join необходим для объединения списка слов в строку.
- St.split – метод, позволяющий превратить строку в список слов. В скобках в кавычках указывается разделитель. Чаще всего это пробел St.split(“ ”).
- St.strip – удаление пробелов в начале и конце строки.
- St.capitalize делает первый символ в тексте заглавным.
- St.swapcase позволяет перевести регистр букв в противоположный.
- St.upper дает возможность сделать все буквы заглавными в строке.
- St.lower позволяет перевести введенный текст в нижний регистр. Все буквы станут строчными.
Форматная строка
В Python работа со строками приятна и тем, что пользователю предоставляется возможность отформатировать текст по указанному подобию. Т. е. программист задает условие, которому должен соответствовать введенный отрывок. Подобным образом можно выводить на экран таблицы без подключения специального модуля PTable. Называется этот прием форматная строка. К примеру, если ввести в IDLE print "%s is %d" % ("one",1), то результатом станет one is 1.
% позволяет подключить форматную строку и является ее основным оператором. В Python имеются символы, идущие как дополнение к %.
Форматный символ | Разъяснение |
%с | Вывод единичного символа. |
%s | Строковое выражение. |
%d | Указание десятичного целого числа. |
%f | Вывод вещественного (дробного) десятичного числа. |
Имеются и другие специальные символы, однако они используются в решении сложных заданий.
Несколько задач с решениями
Такой язык как Python обучение позволяет проходить быстрее и проще, поскольку программный код лаконичный и всеобъемлющий. Чтобы убедиться в этом, нужно разобрать несколько задач.
1. Дана строка. Получить новый текст, в котором происходит замена всех вхождений первого символа “$”, кроме него самого.
Алгоритм:
- Написать функцию, в которой:
- переменной char присваивается первый символ из строки;
- length определяет длину строки;
- str1 через метод replace заменяет char на символ “$”;
- str1 записывает первый символ и получившееся выражения от предыдущей операции;
- вернуть значение str1.
- Вывести на экран результат вычисления функции.
2. Дана строка. Написать код, в котором к концу слова будет прибавляться “ing”, если длина слова >2. Если слово оканчивается на “ing”, то прибавить к строке “ly”. Если длина менее 2, оставить текст без изменений.
Алгоритм:
- Написать функцию, в которой:
- определяется длина текста;
- проверяется условие: если длина >2 и если слово оканчивается на “ing”, то прибавить к такой строке “ly”, в противном случае добавить “ing”;
- вернуть значение полученной переменной.
- Вывести на экран результаты функции с несколькими строками.
Для закрепления результата написания кода в «Питоне» необходимо решить еще несколько задач со строками.