На прошлом уроке я Вас немного обманул))). Прежде чем начать изучать функции более подробно, мы разберём ещё один учебный вопрос - методы строк. Очень важная тема и рекомендую приложить все усилия, что бы вникнуть в неё. Со своей стороны я максимально простыми словами раскрою основной функционал методов, и покажу примеры их использования.
Ранее, мы уже посвятили 2 урока теме работы со строками, но, забегая вперёд, скажу, даже третий урок не раскроет всех возможностей, которые Вы можете использовать в работе со строками. Сегодня я расскажу об основных методах, которые поддерживает тип данных - строки. С этими методами Вы постоянно будете сталкиваться в ходе разработки проектов.
Вот какие методы мы сегодня разберём:
upper();
lower();
capitalize();
count();
find();
index();
replace();
isalpha();
isdigit();
rjust();
split();
strip().
Перед тем, как рассказать об указанных методах, напомню о том, как вызываются методы у строк.
По сути есть два способы вызова:
1. Объявить переменную, присвоить ей строковое значение и вызвать у неё нужный метод.
2. Вызвать нужный метод непосредственно у строки.
Вот как это выглядит (для удобства мы будем работать в консоле):
Как видите, Вы можете применять метод как к переменной, которая содержит в себе ссылку на строку, так и непосредственно к самой строке. Работает всё аналогично.
Кстати, мы рассмотрели первый метод - upper(). Данный метод превращает все текстовые символы из строчных в заглавные.
Имеется и обратный метод - lower().
А вот, если Вам нужно сделать заглавной только первый символ строки, здесь нам поможет метод - capitalize().
Идём дальше, и знакомимся с методом count().
Данный метод осуществляет подсчёт подстрок, на количество их вхождений в строку. Как видите подстрока "вто" входит в строку "автомобиль" один раз.
Примерно также работает метод find(). Отличием является то, что указанный метод возвращает индекс подстроки, которую Вы хотите найти в строке.
Как Вы смогли заметить метод вернул индекс 4! Всё правильно, ведь буква "м" в подстроке "мо" которую мы искали, находится на позиции 4 по индексу (помните, что индексы начинаются с 0?).
Практически идентично работает метод index().
Метод возвращает нам индекс элемента, переданного в метод.
Отличие данного метода от предыдущего в том, что если указать несуществующую подстроку в строке, то "пайтон" выдаст ошибку.
"Галя, у нас замена!" или "отмена"... Видели такой мем в сети? Так вот, в "пайтоне" Вы можете заменять отдельные подстроки в строке с помощью метода replace().
Всё очень легко и просто! Первым аргументом мы передаём в метод "что меняем", а вторым аргументов "на что меняем". Кстати, можно указать и третий аргумент! В данном методе это должно быть число, которое ограничивает количество замен в строке.
Видите?! Метод заменил только первую подстроку "о", а вторую не тронул.
Следующие два метода isalpha() и isdigit() проверяют строку, содержит она в себе лишь текстовые символы и лишь цифры.
Первый метод вернул True, потому что наша строка состоит только из буквенных символов, а второй метод вернул False, собственно по этой же причине.
Важный нюанс, если в строке будет указано вот так:
То метод isalpha() вернёт False, так как пробел это тоже символ, но не буквенный. Это надо учитывать при использовании метода.
Следующий метод на очереди - rjust().
Данный метод добавляет в начало Вашей строки дополнительные символы. Мы передаём в метод аргумент, например 5, и в результате получаем строку, состоящую из одного пробела и нашей строки (в данном случае 5 - это количество символов, которое должно быть в строке по результатам выполнения метода).
Метод rjust() так же позволяет указать, какие символы необходимо добавить в начало строки. Для этого достаточно через запятую добавить второй аргумент - строковый символ. Здесь Важно помнить, что вторым аргументом метод принимает только один символ, и если передать два и более, то возникнет ошибка.
Аналогичным способом работает метод ljust(), с той лишь разницей, что символы добавляются в конец Вашей строки.
Следующий метод - strip(). Да, я не ошибся, я пропустил один метод, о нём я расскажу в конце, из-за одного специфического момента.
Так вот, метод strip() позволяет удалять все символы пробелы и переносов строк в начале и конце строки.
Аналогичным способом работают и два других метода lstrip() и rstrip(). С той лишь разницей, что они удаляют все символы пробелов и переносов строк справа и слева, соответственно.
Ну и на последок, расскажу Вам о таком методе как split().
Данный метод позволяет разделить строку по указанному сепаратору (разделителю). Вот как это выглядит:
Хочу заметить, что, если Вам необходимо разделить строку по разделителю "пробел", то в метод split() можно ничего не передавать, "пайтон" автоматически разделит строку по пробелам.
Как Вы уже заметили, "пайтон" вернул нам не совсем обычный результат. В данном случае нам был выведен на экран "список", который содержит подстроки, полученные из нашей строки. Сейчас вдаваться в "списки" мы не будем, это тема наших будущих занятий. Просто запомните, что метод split() превращает нашу строку в список.
Ну и в завершение урока, хотел показать Вам, как в "пайтон" можно последовательно вызывать методы у различных типов данных. В данном случае у строк.
Давайте рассмотрим такой пример. У нас есть строка "2,4,5, 6, 7.5", и нам необходимо получить каждый элемент строки, без пробелов и запятых. Это можно сделать следующим образом:
Сначала мы применили метод replace() и заменили знаки пробелов, а потом, следом, применили метод split() по разделителю "запятая".
На данном примере я показал как легко можно варьировать методы и поочерёдно применять их к различным типам данным. Условие здесь только одно - каждый последующий метод будет работать, если предыдущий метод возвращает тот тип данных, который есть у данного объекта. В нашем случае строке.
В примере ниже я уже применил метод работы со списками - получение элемента списка по его индексу.
Да, на первый взгляд всё очень запутано. Но, на самом деле, немного попрактиковавшись Вы очень быстро поймёте эти простые вещи. Рекомендую, самим попробовать использовать данные методы, а также поэкспериментировать, с применением поочерёдно нескольких методов.
Если Вам нравятся мои уроки, то "лайк" и подписка на мой канал, будут самой большой наградой!