Подсказка по строкам (str) в Python

Создание строк

Строки являются неизменяемыми упорядоченными коллекциями.

Строковые литералы

Простые строки:s = 'string' # 'string' s = "string" # 'string' s = str(123) # '123'

Многострочные блоки:s = '''1 2 3''' s = """1 2 3""" # 1 # 2 # 3

Ввод из консоли

s = input([str])

Записывает строки из стандартного ввода. str — текст, который выводится в консоль перед вводом.s = sys.stdin.readline([n])

Более быстрая версия. Можно ограничить максимум считываемых символов, указав n.

Вариации строк

r'' — сырые строки. Подавляют экранирование.

b'' — строки битов.

f'{x}' — форматированные строки (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»Принято: {x} шт. Отправлено: {y} шт.»
Шаблоны

from string import Template t = Template('Принято: $x шт. Отправлено: $y шт.') t.substitute(x=2, y=1) # Принято: 2 шт. Отправлено: 1 шт.

Служебные символы

СимволНазначениеПримерРезультат
\nПеревод строки‘ab\ncd’ab
cd
\Экранирование‘ab\\ncd’ab\ncd
\aЗвонок‘a\aa’aa
\bЗабой‘ab\ba’ac
\fПеревод страницы‘a\fa’a a
\rВозврат каретки‘ab\rcd’cd
\tГоризонтальная табуляция‘a\ta’a a
\vВертикальная табуляция‘a\va’a a
\N{id}Символ Юникода по id\N{Degree Sign}°
\uhhhh16-ричный символ Юникода\u2030
\Uhhhh…32-ичный символ Юникода\U00000394Δ
\xhh16-ричное значение символа\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)заменяет {<val>} в строке на dict[<val>]
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, если строка является идентификатором (ifclassassert), иначе 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, они ведут себя абсолютно одинаково.