str¶
user = 'ilnurgi'
db = date(1987, 1, 28)
f'{user=} {db=}'
# user=ilnurgi db=datetime.date(1987, 1, 28)
x = 42
f'{x:5}+{x:15f}'
# ' 42+ 42.000000'
str¶
- class
str
([obj, encode, errors='strict']) Возвращает
str
, преобразованный из объектаerrors - обработка ошибок
strict - при ошибке возбуждается исключение
UnicodeDecodeError
replace - неизвестный символ заменяется символом, имеющим код uFFFD
ignore - неизвестные символы игнорируются
str() # '' str(125) # '125' str([1, 2, 3]) # '[1, 2, 3]' str((1, 2, 3)) # '(1, 2, 3)' str({"x": 5, "у": 10}) # "{'у': 10, 'х': 5}" str(bytes("строка", "utf-8")) # "b'\\xd1\\x81\\xd1\\x82\\xd1\\x80\\xd0\\xbe\\xd0\\xba\\xd0\\хbО'" str(bytearray("строка", "utf-8") ) # "bytearray(b'\\xd1\\x81\\xd1\\x82\\xd1\\x80\\xd0\\xbe\\xd0\\xba\\xdO\\xbO')" str(bytes("строка1", "utf-8"), "utf-8") # 'строка1' str(bytes("строка1", "utf-8"), "ascii", "strict") # Traceback (most recent са11 1ast): # Fi1e "<pyshe11#16>", 1ine 1, in <modu1e> # str(bytes("строка1", "utf-8"), "ascii", "strict") # UnicodeDecodeError: 'ascii' codec can't decode byte Oxd1 in position 0: ordina1 not in range(128) str(bytes("строка1", "utf-8"), "ascii", "ignore") # '1' # вернет строку не зависима от типа аргумента str(b"\xf1\xf2\xf0\xee\xea\xe0") "b'\\xf1\\xf2\\xf0\\xee\\xea\\xe0'" # вернет строку именно из типа bytes или bytearray str(b"\xf1\xf2\xf0\xee\xea\xe0", "ср1251") # 'строка'
"однострочная строка" "однострочная \'строка\'" 'однострочная строка' 'однострочная \"строка\"' """многострочная строка""" '''многострочная строка'''
'ilnurgi' + '.ru' # 'ilnurgi.ru' 'ilnurgi' * 3 #'ilnurgiilnurgiilnurgi' 'il' in 'ilnurgi' # True 'il' not in 'ilnurgi' # False 'ilnurgi'[0] # 'i' 'ilnurgi'[2] # 'n' 'ilnurgi'[:2] # 'il' 'ilnurgi'[-2:] # 'gi'
- static
maketrans
(x[, y[, z]])¶ Создает и возвращает таблицу символов
Если указан только первый параметр, то он должен быть словарем:
t = str.maketrans({"a": "А", "о": "О", "с": None}) # t = {1072: 'А', 1089: None, 1086: 'О'} "cтpoкa".translate(t) # 'трОкА'
Если указаны два первых параметра, то они должны быть строками одинаковой длины:
t = str.maketrans("абвгдежзи", "АБВГДЕЖЗИ") # t = {1072: 1040, 1073: 1041, ...} "aбвгдeжзи".translate(t) # 'АБВГДЕЖЗИ'
В третьем параметре можно дополнительно указать строку из символов, которым будет сопоставлено значение None:
t = str.maketrans("123456789", "О" * 9, "str") # t = {116: None, 115: None, 114: None, 49: 48, ююю} "strl23456789str".translate(t) # '000000000'
-
capitalize
()¶ Возвращает новую строку,
str
, у которой первая буква заменена на прописную'ilnur'.capitalize() # 'Ilnur'
-
center
(width[, pad=' '])¶ Возвращает новую строку,
str
, заданной длины, выравненная по центру.str.ljust()
,str.rjust()
,str.zfill()
'ilnur'.center(7) # ' ilnur '
-
count
(sub[, start[, end]])¶ Возвращает
int
, количество вхождений искомой строки в исходной строке.'Help me! Help!'.count('Help') # 2
-
decode
([coding, errors])¶ Возвращает новую юникодную строку,
unicode
, раскодированная из указанной кодировки в юникод.'\xd0\xb8\xd0\xbb\xd1\x8c\xd0\xbd\xd1\x83\xd1\x80'.decode('utf-8') # u'\u0438\u043b\u044c\u043d\u0443\u0440'
-
encode
([coding, errors])¶ Возвращает новую строку,
str
, закодированную из юникода в указанную кодировку.u'Ильнур'.encode('cp1251') # '\xc8\xeb\xfc\xed\xf3\xf0'
-
endswith
(sub[, start[, end]])¶ Возвращает
bool
, строка заканчивается c искомой строки'ilnur'.endswith('il') # False 'ilnur'.endswith('nur') # True
-
expandtabs
([tabsize=8])¶ Возвращает новую строку,
str
, символы табуляции заменены указанным количеством пробелов.u'\tИльнур'.expandtabs() # u' \u0418\u043b\u044c\u043d\u0443\u0440'
-
find
(sub[, start[, end]])¶ Возвращает
int
, позиция, в котором встречается искомая строка, если ничего не найдено возвращает -1, поиск ведется слева.'ilnur'.find('nur') # 2 'ilnur'.find('run') # -1
-
format
(*args, **kwargs)¶ Возвращает новую строку,
str
, форматированную в соответствии с переданными параметрамиСинтаксис: {[Поле][!Функция][:Формат]}
Синтаксис формата: [[Заполнитель] Выравнивание] [Знак] [#] [0] [Ширна] [,] [.Точность] [Преобразование]
заполнитель - заполнитель пространства в поле
'{pi:10.2f}, {pi:010.2f}'.format(pi=pi) # ' 3.14, 0000003.14'
выравнивание - выравниваение поля
< - по левому краю
> - по правому краю
^ - по центру
‘=’ - знак числа по левому краю, число по правому
'{0:<10.2f}\n{0:^10.2f}\n{0:>10.2f}'.format(pi) """ '3.14 ' ' 3.14 ' ' 3.14' """ '{0:=10}'.format(-3) # '- 3'
ширина - ширина поля
"'{0:10}'".format(3) # ' 3' "'{0:{1}}'".format(3, 10) # ' 3'
знак - управляет выводом знака числа
+ - обязательный вывод знаков
- - знаки только для отрицательных
пробел - вывод отрицательных знаков и пробел вместо положительного знака
print('{0:-.2}\n{1:-.2}'.format(pi, -pi)) """ '3.1' '-3.1' """ print('{0:+.2}\n{1:+.2}'.format(pi, -pi)) """ '+3.1' '-3.1' """ print('{0: .2}\n{1: .2}'.format(pi, -pi)) """ ' 3.1' '-3.1' """
преобразование - преобразование чисел
b - двоичное значение
c - преобразование числа в символ
d - десятичное значение
n - аналогично d, но с учетом локали
o - восьмиричное значение
x, ‘X’ - шестнадцатиричное значение
f, F - вещественное число в десятичном представлении
e, E - вещественное число в экспоненциальной форме
g, G - эквивалентно f, e или E (выбирается более короткая запись числа)
n - аналогично g, но учитвает локаль
% - умножает число на 100 и добавляет символ процента в конце
'{:b}'.format(42) # '101010' '{:#b}'.format(42) # '0b101010' '{:g}'.format(42) # '42' '{:#g}'.format(42) # '42.0000'
'{0} и {1}'.format('фарш', 'яйца') # 'фарш и яйца' 'Этот {food} — {adjective}.'.format(food='фарш', adjective='непередаваемо ужасен') # 'Этот фарш — непередаваемо ужасен.' 'История о {0}е, {1}е, и {other}е.'.format('Билл', 'Манфред', other='Георг') # 'История о Билле, Манфреде, и Георге.' 'Значение ПИ — примерно {0:.3f}.'.format(3.14)) # 'Значение ПИ — примерно 3.14159.' '{0:10} ==> {1:10d}'.format('Sjoerd', 4127) # 'Sjoerd ==> 4127' table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678} 'Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; Dcab: {0[Dcab]:d}'.format(table)) # 'Jack: 4098; Sjoerd: 4127; Dcab: 8637678' # вывод в двоичном формате '{0:b} & {1:b} = {2:b}'.format(100, 75, 100 & 75) # '1100100 & 1001011 = 1000000' '{pi:10.2f}, {pi:010.2f}'.format(pi=pi) # ' 3.14, 0000003.14' 'one million is {0:,}'.format(1000000) # '1,000,000'
-
index
(sub[, start[, end]])¶ Возвращает
int
, позиция, в котором встречается искомая строка, если ничего не найдено вызовет исключениеValueError
, поиск ведется слева.'ilnur'.index('nur') # 2 'ilnur'.index('run') """ Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found """
-
isalpha
()¶ Возвращает
bool
, строка содержит только буквы'123'.isalpha() # False 'ilnur'.isalpha() # True
-
isalnum
()¶ Возвращает
bool
, строка содержит только буквы и цифры
-
isdigit
()¶ Возвращает
bool
, строка содержит только цифры'123'.isdigit() # True 'ilnur'.isdigit() # False
-
isdecimal
()¶ Возвращает
bool
, строка содержит только десятичные символы
-
islower
()¶ Возвращает
bool
, строка содержит только строчные буквы
-
isnumeric
()¶ Возвращает
bool
, строка содержит только числовые символы"\u2155".isnumeric() # True "\u2155".isdigit() # False print("\u2155") # '1/5'
-
isspace
()¶ Возвращает
bool
, строка содержит только пробельные символы'123'.isalpha() # False
-
istitle
()¶ Возвращает
bool
, строка содержит слова начинающиеся с заглавной буквы
-
isupper
()¶ Возвращает
bool
, если строка содержит только заглавные буквы
-
join
(iter)¶ Возвращает строку
str
, содержащий сконкатенированные значения исходной строки с итерируемым объектом.'ilnur'.join('---') # '-ilnur-ilnur-
-
ljust
(width[, fill])¶ Возвращает новую строку
str
, заданной длины, выравненная слева.str.center()
,str.rjust()
,str.zfill()
'ilnur'.ljust(7) # 'ilnur '
-
lower
()¶ Возвращает новую строку
str
, в нижнем регистре'iLnur'.lower() # 'ilnur'
-
lstrip
([chrs=" "])¶ Возвращает новую строку
str
, с удаленными пробелами слева' ilnur privet '.lstrip() # 'ilnur privet '
-
partition
(sep)¶ Находит первое вхождение символа-разделителя в строку и возвращает кортеж из трех элементов.
первый элемент - содержать фрагмент, расположенный перед разделителем
второй элемент - символ-разделитель
третий элемент - фрагмент, расположенный после символа-разделителя.
Поиск производится слева направо.
Если символ-разделитель не найден, то первый элемент кортежа будет содержать всю строку, а остальные элементы будут пустыми.
"wordl word2 wordЗ".partition(" ") # ('wordl', ' ', 'word2 word3') "wordl word2 wordЗ".partition("\n") # ('wordl word2 wordЗ', '', '')
-
replace
(old, new[, maxreplace])¶ Возвращает новую строку
str
, с замененой строкой на новую строку.'ilnur'.replace('nur','nurgi') # 'ilnurgi'
-
rfind
(sub[, start[, end]])¶ Возвращает
int
, позиция с которого начинается искомая строка, если ничего не найдено возвращает -1, поиск ведется справа.Аналог
find()
.
-
rindex
(sub[, start[, end]])¶ Возвращает
int
, позиция с которого начинается искомая строка, если ничего не найдено вызовет исключениеValueError
, поиск ведется справа.Аналог
index()
.
-
rjust
(width[, fill])¶ Возвращает новую строку
str
, заданной длины, выравненная по правому краю.str.ljust()
,str.center()
,str.zfill()
'ilnur'.rjust(7) # ' ilnur'
-
rpartition
(sep)¶ Аналогично методу
str.partition()
, но поиск символа разделителя производится не слева направо, а, справа налево.Если символ разделитель не найден, то первые два элемента кортежа будут пустыми, а третий элемент будет содержать всю строку.
"wordl word2 wordЗ".rpartition(" ") # ('wordl word2', ' ', 'wordЗ') "wordl word2 wordЗ".rpartition("\n") # (' ', '', 'wordl word2 word3')
-
rsplit
([razd, maxcount])¶ Возвращает
list
, полученный из строки, путем разделения разделителем.'i l n u r'.split(' ') # ['i', 'l', 'n', 'u', 'r']
-
rstrip
([chrs=" "])¶ Возвращает новую строку
str
, с удаленными пробелами справа' ilnur privet '.rstrip() # ' ilnur privet'
-
split
([sep[, maxcount]])¶ Возвращает
list
, полученный из строки, путем разделения разделителем.'i l n u r'.split(' ') # ['i', 'l', 'n', 'u', 'r']
-
splitlines
([keepends=1])¶ Возвращает
list
, аналогичноsplit()
, но использующий в качестве разделителя переход на новую строку.Символы перехода на новую строку включаются в результат, только если необязательный аргумент keepends равен 1.
"""Hello World!\nHello!""".splitlines() # ['Hello World!', 'Hello!']
-
startswith
(iterable_sub[, start[, end]])¶ Возвращает
bool
, если строка начинается c искомой строки'ilnur'.startswith('il') # True 'ilnur'.startswith('nur') # False 'ilnur'.startswith(('i', 'a', 'b')) # True 'ilnur'.startswith(('a', 'b')) # False
-
strip
([chrs=" "])¶ Возвращает новую строку
str
, с удаленными пробелами c обоих концов соответственно.' ilnur '.strip() # 'ilnur'
-
swapcase
()¶ Возвращает новую строку
str
, в которой регистр букв изменен с верхнего на нижний и наоборот.'Ilnur'.swapcase() # 'iLNUR'
-
title
()¶ Возвращает новую строку
str
, в которой регистр букв соответствует заголовку.'ilnur ilnur'.title() # 'Ilnur Ilnur'
-
translate
(table[, deletechars])¶ Выполняет преобразование строки в соответствии с таблицей замены.
Упростить создание таблицы символов позволяет статический метод
maketrans()
s = "Пример" d = {ord('П''): None, ord('p'): ord('P')} # d = {1088: 1056, 1055: None} s.translate(d) # s = 'РимеР'
-
upper
()¶ Возвращает новую строку
str
, в верхнем регистре'iLnur'.upper() # 'ILNUR'
-
zfill
(width)¶ Возвращает новую строку
str
, заданной длины, пустое пространство слева заполнится нулямиstr.ljust()
,str.rjust()
,str.center()
'12'.zfill(5) # '00012'
unicode¶
- class
unicode
Юникодная строка, имеет теже методы что и
str
Экранированные последовательности¶
Строка | Описание |
---|---|
\ | слеш |
' | апостроф |
" | кавычки |
\a | ascii-символ звуковой сигнал |
\b | ascii-символ забоя |
\f | ascii-символ перевода формата |
\n | ascii-символ новой строки |
\N{имя} | именованный символ юникода (юникод) |
\r | ascii-символ возврата каретки |
\t | ascii-символ горизонтальной табуляции |
\uXXXX | 16-ый код 16-й битного сивола (юникод) |
\UXXXXXXXX | 16-ый код 32-й битного сивола (юникод) |
\v | ascii-символ вертикальной табуляции |
\000 | 8-ный код символа |
\xhh | 16-ый код символа |
Форматирвание через %¶
s - строка
d - число в десятичной
x - число в шестнадцатеричной
o - число в восьмиричной
f - число с плавающей точкой в десятичной системе
e - число с плавающей точкой в шестандатеричной
g - число с плавающей точкой в восьмиричной
% - процент
'%s%%' % 5
# '5%'
'%10s' % 5
# ' 5'
'%-10s' % 5
# '5 '
'%.4d' % 5
# '0005' '
'%10.4d' % 5
# ' 0005'
'%*.*d' % (10, 4, 5)
# ' 0005'
'%s and %s' % ('cat', 'dog')
# 'cat and dog'