🐍 Укус питона 🐍
3.02K subscribers
571 photos
2 videos
272 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Поиск в строке

Для поиска подстроки в строке в Python применяется метод find(), который возвращает индекс первого вхождения подстроки в строку и имеет три формы:

• find(str): поиск подстроки str ведется с начала строки до ее конца
• find(str, start): параметр start задает начальный индекс, с которого будет производиться поиск
• find(str, start, end): параметр end задает конечный индекс, до которого будет идти поиск

Если подстрока не найдена, метод возвращает -1, смотрим код:

🐍 Укус питона // 💬 Чат // #теория #строки
Замена в строке

● Для замены в строке одной подстроки на другую применяется метод replace():

● replace(old, new): заменяет подстроку old на new

replace(old, new, num): параметр num указывает, сколько вхождений подстроки old надо заменить на new. По умолчанию num равно -1, что соответствует первой версии метода и приводит к замене всех вхождений.

🐍 Укус питона // 💬 Чат // #теория #строки
Получение подстроки

При необходимости мы можем получить из строки не только отдельные символы, но и подстроку. Для этого используется следующий синтаксис:
• string[:end]: извлекается последовательность символов начиная с 0-го индекса по индекс end (не включая)
• string[start:end]: извлекается последовательность символов начиная с индекса start по индекс end (не включая)
• string[start:end:step]: извлекается последовательность символов начиная с индекса start по индекс end (не включая) через шаг step

Используем все варианты получения подстроки, смотрим код:

🐍 Укус питона // 💬 Чат // #теория #строки
Объединение строк

Одной из самых распространенных операций со строками является их объединение или конкатенация. Для объединения строк применяется операция сложения, первый пример 👀:

С объединением двух строк все просто, но что, если нам надо сложить строку и число? В этом случае необходимо привести число к строке с помощью функции str(), внимание на второй пример:

🐍 Укус питона // 💬 Чат // #теория #строки
Сравнение строк

При сравнении строк принимается во внимание символы и их регистр. Так, цифровой символ условно меньше, чем любой алфавитный символ. Алфавитный символ в верхнем регистре условно меньше, чем алфавитные символы в нижнем регистре. Например, внимание на первую часть:

Поэтому строка "1a" условно меньше, чем строка "aa". Вначале сравнение идет по первому символу. Если начальные символы обоих строк представляют цифры, то меньшей считается меньшая цифра, например, "1a" меньше, чем "2a".
Если начальные символы представляют алфавитные символы в одном и том же регистре, то смотрят по алфавиту. Так, "aa" меньше, чем "ba", а "ba" меньше, чем "ca".

Зависимость от регистра не всегда желательна, так как по сути мы имеем дело с одинаковыми строками. В этом случае перед сравнением мы можем привести обе строки к одному из регистров.
Функция lower() приводит строку к нижнему регистру, а функция upper() - к верхнему.

🐍 Укус питона // 💬 Чат // #теория #строки
Функции ord и len

Поскольку строка содержит символы Unicode, то с помощью функции ord() мы можем получить числовое значение для символа в кодировке Unicode, смотрим первую часть:

Для получения длины строки можно использовать функцию len(), вторая часть кода:

🐍 Укус питона // 💬 Чат // #теория #строки #функции
Поиск в строке

С помощью выражения term in string можно найти подстроку term в строке string. Если подстрока найдена, то выражение вернет значение True, иначе возвращается значение False, смотрим пример:

🐍 Укус питона // 💬 Чат // #теория #строки
Разделение на подстроки

Метод split() разбивает строку на список подстрок в зависимости от разделителя. В качестве разделителя может выступать любой символ или последовательность символов. Данный метод имеет следующие формы:
• split(): в качестве разделителя используется пробел
• split(delimeter): в качестве разделителя используется delimeter
• split(delimeter, num): параметр num указывает, сколько вхождений delimeter используется для разделения. Оставшаяся часть строки добавляется в список без разделения на подстроки
В следующей обучалке поговорим о методе partition().

🐍 Укус питона // 💬 Чат // #теория #строки #split
Метод partition()

Этот метод разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов - подстрока до разделителя, разделитель и подстрока после разделителя, смотрим код:

Если разделитель с строке не найден, то возвращается кортеж с одной строкой.

🐍 Укус питона // 💬 Чат // #теория #строки #partition
Соединение строк

При рассмотрении простейших операций со строками было показано, как объединять строки с помощью операции сложения. Другую возможность для соединения строк представляет метод join(): он объединяет список строк. Причем текущая строка, у которой вызывается данный метод, используется в качестве разделителя, первая часть 👀.

Вместо списка в метод join можно передать простую строку, тогда разделитель будет вставляться между символами этой строки, вторая часть кода.

🐍 Укус питона // 💬 Чат // #теория #строки #join
Работа со строками.

Строка представляет последовательность символов в кодировке Unicode, заключенных в кавычки. Причем для определения строк Python позволяет использовать как одинарные, так и двойные кавычики, первый пример:

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

Если же мы хотим определить многострочный текст, то такой текст заключается в тройные двойные или одинарные кавычки, третий пример:

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

🐍 Укус питона // 💬 Чат // #теория #строки
Управляющие последовательности в строке.

Строка может содержать ряд специальных символов - управляющих последовательностей или escape-последовательности. Некоторые из них:
• : позволяет добавить внутрь строки слеш
• ': позволяет добавить внутрь строки одинарную кавычку
• ": позволяет добавить внутрь строки двойную кавычку
• \n: осуществляет переход на новую строку
• \t: добавляет табуляцию (4 отступа)

Используем некоторые последовательностей, смотрим пример:

Консольный вывод программы в примере:

🐍 Укус питона // 💬 Чат // #теория #строки
Управляющие последовательности в строке. Продолжение.

Хотя подобные последовательности могут нам помочь в некоторых делах, например, поместить в строку кавычку, сделать табуляцию, перенос на другую строку. Но они также могут и мешать. Например:

Здесь переменная path содержит некоторый путь к файлу. Однако внутри строки встречаются символы "\n", которые будут интерпретированы как управляющая последовательность. Так, мы получим следующий консольный вывод, конец примера:

Чтобы избежать подобной ситуации, перед строкой ставится символ r, второй пример:

🐍 Укус питона // 💬 Чат // #теория #строки
Основные методы строк.

Рассмотрим основные методы строк, которые мы можем применить в приложениях:
• isalpha(): возвращает True, если строка состоит только из алфавитных символов
islower(): возвращает True, если строка состоит только из символов в нижнем регистре
• isupper(): возвращает True, если все символы строки в верхнем регистре
• isdigit(): возвращает True, если все символы строки - цифры
• isnumeric(): возвращает True, если строка представляет собой число
• startswith(str): возвращает True, если строка начинается с подстроки str

Например, если мы ожидаем ввод с клавиатуры числа, то перед преобразованием введенной строки в число можно проверить, с помощью метода isnumeric() введено ли в действительности число, и если так, то выполнить операцию преобразования:

🐍 Укус питона // 💬 Чат // #теория #строки #методы
Основные методы строк.

• endswith(str): возвращает True, если строка заканчивается на подстроку str
• lower(): переводит строку в нижний регистр
• upper(): переводит строку в вехний регистр
• title(): начальные символы всех слов в строке переводятся в верхний регистр
• capitalize(): переводит в верхний регистр первую букву только самого первого слова строки
• lstrip(): удаляет начальные пробелы из строки
• rstrip(): удаляет конечные пробелы из строки
• strip(): удаляет начальные и конечные пробелы из строки
ljust(width): если длина строки меньше параметра width, то справа от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по левому краю
• rjust(width): если длина строки меньше параметра width, то слева от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по правому краю

Проверка, начинается или оканчивается строка на определенную подстроку:

🐍 Укус питона // 💬 Чат // #теория #строки #методы
Основные методы строк. Продолжение.

• center(width): если длина строки меньше параметра width, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по центру
• find(str[, start [, end]): возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1
• replace(old, new[, num]): заменяет в строке одну подстроку на другую
• split([delimeter[, num]]): разбивает строку на подстроки в зависимости от разделителя
• partition(delimeter): разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов - подстрока до разделителя, разделитель и подстрока после разделителя
• join(strs): объединяет строки в одну строку, вставляя между ними определенный разделитель

Удаление пробелов в начале и в конце строки:

🐍 Укус питона // 💬 Чат // #теория #строки #методы
Форматирование строки.

В прошлых темах было рассмотрено, как можно вставлять в строку некоторые значения, предваряя строку символом f, смотрим пример:

Но также в Python есть альтернативный способ, который предоставляет метод format(). Этот метод позволяет форматировать строку, вставляя в нее на место плейсхолдеров определенные значения.

Для вставки в строку используются специальные параметры, которые обрамляются фигурными скобками ({}).

🐍 Укус питона // 💬 Чат // #теория #строки #форматирование
Именованные параметры

В форматируемой строке мы можем определять параметры, в методе format() передавать для этих параметров значения:

Причем в метод формат аргументы определяются с тем же именем, что и параметры в строке. Так, если параметр называется first_name, как в первом случае, то аргумент, которому присваивается значение, также называется first_name.

🐍 Укус питона // 💬 Чат // #теория #строки #форматирование
Параметры по позиции

Мы также можем последовательно передавать в метод format набор аргументов, а в самой форматируемой строке вставлять эти аргумента, указывая в фигурных скобках их номер (нумерация начинается с нуля), первый пример:

При этом аргументы можно вставлять в строку множество раз, второй пример:

🐍 Укус питона // 💬 Чат // #теория #строки #форматирование
Подстановки

Еще один способ передачи форматируемых значений в строку представляет использование подстановок или специальных плейсхолдеров, на место которых вставляются определенные значения. Для форматирования мы можем использовать следующие плейсхолдеры:
• s: для вставки строк
• d: для вставки целых чисел
• f: для вставки дробных чисел. Для этого типа также можно определить через точку количество знаков в дробной части.
• %: умножает значение на 100 и добавляет знак процента
• e: выводит число в экспоненциальной записи

Общий синтаксис плейсхолдера следующий:

В зависимости от плейсхолдера можно добавлять дополнительные параметры. Например, для форматирования чисел float можно использовать следующие параметры

🐍 Укус питона // 💬 Чат // #теория #строки #форматирование