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

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

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

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

С объединением двух строк все просто, но что, если нам надо сложить строку и число? В этом случае необходимо привести число к строке с помощью функции 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 можно использовать следующие параметры

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

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

В качестве результата метод format() возвращает новую отформатированную строку.

Форматирование целых чисел, смотрим второй пример:

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

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

Плейсхолдеры можно использовать и в f-строках, смотрим пример:

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

Еще один параметр позволяет установить минимальную ширину форматируемого значения в символах, третий пример:

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

Существует также еще один способ форматирования с помощью следующего синтаксиса, первый пример:

То есть в начале идет строка, которая содержит те же плейсхолдеры, которые были рассмотрены выше (за исключением плейсхолдера %), после строки ставится знак процента %, а затем список значений, которые вставляются в строку. Фактически знак процента представляют операцию, в результате которой образуется новая строка, второй пример:

Рядом с плейсхолдером указывается знак процента и в отличие от функции format здесь не требуются фигурные скобки.

Причем способы форматирования чисел здесь также применяются:

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