Шпаргалка по строкам (str) в Python
Строки являются неизменяемыми упорядоченными коллекциями.
Строковые литералы
s = 'string' # 'string' s = "string" # 'string' s = str(123) # '123'
s = '''1 2 3''' s = """1 2 3""" # 1 # 2 # 3
Ввод из консоли
Записывает строки из стандартного ввода. str — текст, который выводится в консоль перед вводом.
Более быстрая версия. Можно ограничить максимум считываемых символов, указав n .
Вариации строк
r» — сырые строки. Подавляют экранирование.
f» — форматированные строки (f-строки).
Операции со строками
Способ | Пример | Результат |
---|---|---|
Конкатенация | ‘a’ + ‘b’ | ‘ab’ |
Дублирование | ‘a’ * 3 | ‘aaa’ |
Взятие по индексу | ‘abc'[1] | ‘b’ |
Срезы | ‘abcde'[3:1:-1] | ‘dc’ |
Форматирование строк
Стандартные средства
Способ | Пример |
---|---|
оператор % | «Принято: %a шт. Отправлено: %d шт.» % (x, y) |
format() | «Принято: <> шт. Отправлено: <> шт.».format(x, y) |
f-строки | f»Принято: шт. Отправлено: шт.» |
Шаблоны
from string import Template t = Template('Принято: $x шт. Отправлено: $y шт.') t.substitute(x=2, y=1) # Принято: 2 шт. Отправлено: 1 шт.
Служебные символы
Символ | Назначение | Пример | Результат |
---|---|---|---|
\n | Перевод строки | ‘ab \n cd’ | ab |
cd | |||
\ | Экранирование | ‘ab \\ ncd’ | ab\ncd |
\a | Звонок | ‘a \a a’ | aa |
\b | Забой | ‘ab \b a’ | ac |
\f | Перевод страницы | ‘a \f a’ | a a |
\r | Возврат каретки | ‘ab \r cd’ | cd |
\t | Горизонтальная табуляция | ‘a \t a’ | a a |
\v | Вертикальная табуляция | ‘a \v a’ | a a |
\N | Символ Юникода по id | ‘ \N ‘ | ° |
\uhhhh | 16-ричный символ Юникода | ‘ \u2030 ‘ | ‰ |
\Uhhhh… | 32-ичный символ Юникода | ‘ \U00000394 ‘ | Δ |
\xhh | 16-ричное значение символа | ‘ \x2A ‘ | * |
\ooo | восьмеричное значение символа | ‘ /275 ‘ | ½ |
\0 | символ Null | ‘ \0 ‘ |
Методы строк
Метод | Назначение |
---|---|
s.capitalize() | переводит первую букву в верхний, а остальные в нижний регистр. |
s.casefold() | переводит все символы в нижний регистр |
s.center(width[, fillvalue]) | обрамляет значениями fillvalue строку, пока длина не станет width |
s.count(str[, start][, end] | считает количество подстрок str в выбранном промежутке строки |
s.encode(encoding, errors) | меняет кодировку строки |
s.endswith(suffix[, start][, end]) | возвращает True если строка заканчивается на suffix , иначе False |
s.expandtabs(tabsize=8) | увеличивает размер символов табуляции до tabsize пробелов |
s.find(str[, start][, end]) | возвращает индекс начала первой подстроки str в выбранном промежутке или -1 , если она не найдена |
s.format(args, *kwargs) | последовательно заменяет <> в строке на свои аргументы |
s.format_map(dict) | заменяет > в строке на dict[] |
s.index(str[, start][, end]) | возвращает индекс начала первой подстроки str в выбранном промежутке или ValueError , если она не найдена |
s.isalnum() | возвращает True , если строка состоит только из букв и цифр, иначе False |
s.isalpha() | возвращает True , если строка состоит только из букв, иначе False |
s.isdecimal() | возвращает True , если строка состоит только из цифр, иначе False [1] |
s.isdigit() | возвращает True , если строка состоит только из цифр, иначе False [1] |
s.isidentifier() | возвращает True , если строка является идентификатором ( if , class , assert ), иначе False |
s.islower() | возвращает True , если вся строка в нижнем регистре, иначе False |
s.isnumeric() | возвращает True , если строка состоит только из цифр, иначе False [1] |
s.isprintable() | возвращает True , если все символы строки отображаются, иначе False (например, \n , \t ) |
s.isspace() | возвращает True , если строка состоит из пробелов, иначе False |
s.istitle() | возвращает True , если строка начинается с заглавной буквы, а остальные — строчные, иначе False |
s.isupper() | возвращает True , если строка в верхнем регистре, иначе False |
s.join(iter) | склеивает элементы последовательности iter в одну строку с разделителем s |
s.ljust(width, fillchar=’ ‘) | добавляет в конец строки символ fillchar , пока длина не станет width |
s.lower() | переводит символы строки в нижний регистр |
s.lstrip([chars]) | возвращает строку без пробельных символов или chars в начале |
s.maketrans(*args) | возвращает таблицу перевода для s.translate |
s.partition(sep) | разделяет строку на три части по первому разделителю sep : [начало, sep , конец] |
s.replace(old, new) | заменяет все подстроки old на new |
s.rfind(str[, start][, end]) | возвращает индекс начала последней подстроки str в выбранном промежутке или -1 , если она не найдена |
s.rindex(str[, start][, end]) | возвращает индекс начала последней подстроки str в выбранном промежутке или ValueError , если она не найдена |
s.rjust(width, fillchar=’ ‘) | добавляет в начало строки символ fillchar , пока длина не станет width |
s.rpartition() | разделяет строку на три части по последнему разделителю sep : [начало, sep , конец] |
s.rsplit(sep=’ ‘, maxsplit=-1) | возвращает список подстрок, разделенных по sep до maxsplit раз (с конца) |
s.rstrip([chars]) | возвращает строку без пробельных символов или chars в конце |
s.split((sep=’ ‘, maxsplit=-1)) | возвращает список подстрок, разделенных по sep до maxsplit раз |
s.splitlines(keepends=False) | Разделяет строку по \n . Не удаляет разделители, если keepends=True . |
s.startswith(prefix[, start][, end]) | возвращает True если строка начинается с prefix , иначе False |
s.strip([chars]) | возвращает строку без пробельных символов или chars в начале и конце |
s.swapcase() | меняет регистр всех символов на противоположный |
s.title() | возвращает строку, где все слова начинаются с заглавной буквы, а продолжаются строчными |
s.translate(table) | заменяет все символы строки согласно таблице перевода |
s.upper() | возвращает копию строки в верхнем регистре |
s.zfill(width) | Заполняет строку указанным числом нулей в начале |
Примечания
isdecimal, isdigit, isnumeric
Эти три метода отличаются тем, как обрабатывают некоторые символы Юникода.
c1 = '\u00B2' # ² c1.isdecimal() # False c1.isdigit() # True c2 = '\u00BD' # ½ c2.isdecimal() # False c2.isdigit() # False c2.isnumeric() # True
При работе с цифрами (арабскими и римскими), буквами, знаками математических операций или пунктуации, а также всем прочим, что можно ввести с обычной клавиатуры, не зажав Alt , они ведут себя абсолютно одинаково.
Практический Python для начинающих
Станьте junior Python программистом за 7 месяцев
Строки. Функции и методы строк
Итак, о работе со строками мы немного поговорили, теперь поговорим о функциях и методах строк.
Я постарался собрать здесь все строковые методы и функции, но если я что-то забыл — поправляйте.
Базовые операции
При вызове методов необходимо помнить, что строки в Python относятся к категории неизменяемых последовательностей, то есть все функции и методы могут лишь создавать новую строку.
: Поэтому все строковые методы возвращают новую строку, которую потом следует присвоить переменной.
Таблица «Функции и методы строк»
Функция или метод | Назначение |
---|---|
S = ‘str’; S = «str»; S = »’str»’; S = «»»str»»» | Литералы строк |
S = «s\np\ta\nbbb» | Экранированные последовательности |
S = r»C:\temp\new» | Неформатированные строки (подавляют экранирование) |
S = b»byte» | Строка байтов |
S1 + S2 | Конкатенация (сложение строк) |
S1 * 3 | Повторение строки |
S[i] | Обращение по индексу |
S[i:j:step] | Извлечение среза |
len(S) | Длина строки |
S.find(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или -1 |
S.rfind(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или -1 |
S.index(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError |
S.rindex(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError |
S.replace(шаблон, замена[, maxcount]) | Замена шаблона на замену. maxcount ограничивает количество замен |
S.split(символ) | Разбиение строки по разделителю |
S.isdigit() | Состоит ли строка из цифр |
S.isalpha() | Состоит ли строка из букв |
S.isalnum() | Состоит ли строка из цифр или букв |
S.islower() | Состоит ли строка из символов в нижнем регистре |
S.isupper() | Состоит ли строка из символов в верхнем регистре |
S.isspace() | Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы (‘\f’), «новая строка» (‘\n’), «перевод каретки» (‘\r’), «горизонтальная табуляция» (‘\t’) и «вертикальная табуляция» (‘\v’)) |
S.istitle() | Начинаются ли слова в строке с заглавной буквы |
S.upper() | Преобразование строки к верхнему регистру |
S.lower() | Преобразование строки к нижнему регистру |
S.startswith(str) | Начинается ли строка S с шаблона str |
S.endswith(str) | Заканчивается ли строка S шаблоном str |
S.join(список) | Сборка строки из списка с разделителем S |
ord(символ) | Символ в его код ASCII |
chr(число) | Код ASCII в символ |
S.capitalize() | Переводит первый символ строки в верхний регистр, а все остальные в нижний |
S.center(width, [fill]) | Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию) |
S.count(str, [start],[end]) | Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию) |
S.expandtabs([tabsize]) | Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам |
S.lstrip([chars]) | Удаление пробельных символов в начале строки |
S.rstrip([chars]) | Удаление пробельных символов в конце строки |
S.strip([chars]) | Удаление пробельных символов в начале и в конце строки |
S.partition(шаблон) | Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки |
S.rpartition(sep) | Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку |
S.swapcase() | Переводит символы нижнего регистра в верхний, а верхнего – в нижний |
S.title() | Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний |
S.zfill(width) | Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями |
S.ljust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar |
S.rjust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar |
S.format(*args, **kwargs) | Форматирование строки |
Для вставки кода на Python в комментарий заключайте его в теги