Шпаргалка по строкам (str) в Python Шпаргалки

Шпаргалка по строкам (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}' °
\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) заменяет {<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, если строка является идентификатором (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 для начинающих
Практический Python для начинающих

Станьте junior Python программистом за 7 месяцев

 7 месяцев

Возможно будет интересно

Операторы в Python Шпаргалки
Новичок
Операторы в Python

Шпаргалка по арифметическим и условным операторам в Python

2022-11-09
Шпаргалка по спискам (list) в Python Шпаргалки
Новичок
Шпаргалка по спискам (list) в Python

Шпаргалка по спискам и их методам

2022-11-17
Шпаргалка по кортежам в Python Шпаргалки
Новичок
Шпаргалка по кортежам в Python

Особенности кортежей, операции с ними и их методы.

2022-11-19