моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Оглавление
Глава 6. Строковые объекты и операции нарезки
6.2 Часто используемые методы в символах
Строка: строка, состоящая из нескольких символов.
Символы: символы, видимые невооруженным глазом.
Байты: невидимы невооруженным глазом.
Как Python определяет строки:
одинарные кавычки, двойные кавычки, тройные кавычки str()
>>> dir(s) ['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
заглавные буквы ------- Сделать первую букву строки заглавной
>>> s 'this is a string' >>> s.capitalize() 'This is a string'
center(width, fillchar=' ') ------ Отцентрируйте строку в соответствии с заданной длиной и выровняйте ее по центру
rjust --------- выравнивание по правому краю
ljust ------ выравнивание по левому краю
>>> help(s.center) Help on built-in function center: center(width, fillchar=' ', /) method of builtins.str instance Return a centered string of length width. Padding is done using the specified fill character (default is a space). >>> s.center(40) ' this is a string ' >>> s.center(40,"*") '************this is a string************' >>> s.rjust(40) ' this is a string' >>> s.ljust(40) 'this is a string ' >>> s.ljust(40,"*") 'this is a string************************' >>> s.rjust(40,"*") '************************this is a string'
count --------- подсчитывает количество раз, когда символ появляется в строке
>>> s 'this is a string' >>> s.count("s") 3 >>> s.count("is") 2
Endswith ------- Определить, заканчивается ли строка на XXX
начинается с ------- Определить, начинается ли строка с XXX
>>> s.endswith("g") True >>> s.endswith("ing") True >>> s.endswith("f") False >>> s.startswith("t") True >>> s.startswith("f") False
index ------ Позиция, где искомый символ или строка впервые появляется в строке. Если она не существует, будет выдано исключение (отчет об ошибке).
rindex ------- Поиск справа налево, позиция, где искомый символ или строка впервые появляется в строке (эквивалентно последнему вхождению символа или строки, искомому слева направо в строке) ), если оно не существует, выдать исключение (сообщить об ошибке)
>>> s 'this is a string' >>> s.index("s") 3 >>> s.index("is") 2 >>> s.index("f") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found >>> s.index(" ") 4 >>> s.rindex("s") 10 >>> s.rindex("f") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found
find ------- Позиция первого вхождения искомого символа или строки в строке. Если он не существует, возвращается -1.
rfind ----- Поиск справа налево, положение первого вхождения символа или строки в строке (эквивалентно положению последнего вхождения символа или строки в строке слева направо)), возвращает -1, если он не существует
>>> s 'this is a string' >>> s.find("s") 3 >>> s.find("f") -1 >>> s.rfind("f") -1 >>> s.rfind("s") 10
encode ----- метод для преобразования строк в байты в python3, метод decode() для преобразования байтов в строки (метод в байтах)
>>> s 'this is a string' >>> s.encode() b'this is a string' >>> d = s.encode() >>> d b'this is a string' >>> type(d) <class 'bytes'> >>> d b'this is a string' >>> d.decode() 'this is a string' >>> ss = d.decode() >>> ss 'this is a string' >>> type(ss) <class 'str'>
format ------ строка формата, объединение строк
isupper ------ Определяет, состоит ли строка из заглавных букв
islower ----- ------ Определить, состоит ли строка из строчных букв
>>> s.isupper() False >>> s.islower() False
istitle ----- Определить, является ли это заголовком
>>> s.istitle() False >>> ss = "This Is A Dog" >>> ss.istitle() True
isspace ----- Обычно он не используется для определения того, является ли это пробелом.
>>> sss = " " >>> sss.isspace() True >>> ss 'This Is A Dog' >>> ss.isspace() False
isdigit ------ Определить, является ли это числом
>>> sss = "123234344" >>> sss.isdigit() True >>> ss 'This Is A Dog' >>> ss.isdigit() False >>> sss = "1233443gggg" >>> sss.isdigit() False
isalnum ------ определяет, являются ли это буквами и цифрами (буквенно-цифровыми)
>>> help(s.isalnum) Help on built-in function isalnum: isalnum() method of builtins.str instance Return True if the string is an alpha-numeric string, False otherwise. A string is alpha-numeric if all characters in the string are alpha-numeric and there is at least one character in the string. >>> sss '1233443gggg' >>> sss.isalnum() True >>> ss 'This Is A Dog' >>> ss.isalnum() False
isalpha ------ определяет, является ли это буквой
title ----- Преобразование строки в формат заголовка
>>> s 'This is a string' >>> s.istitle() False >>> s.title() 'This Is A String' >>> sss = s.title() >>> sss 'This Is A String' >>> sss.istitle() True
верхний ------- Преобразование строки в верхний регистр
нижний ------- Преобразование строки в нижний регистр
>>> s 'This is a string' >>> s.lower() 'this is a string' >>> s.upper() 'THIS IS A STRING'
Split ----- Разделить строку в соответствии с указанным символом, возвращаемое значение — список
>>> s 'This is a string' >>> s.split(" ") ['This', 'is', 'a', 'string'] >>> l = s.split(" ") >>> l ['This', 'is', 'a', 'string'] >>> type(l) <class 'list'> >>> l = s.split("s") >>> l ['Thi', ' i', ' a ', 'tring']
join ------ объединяет итерируемый объект в строку в соответствии с указанным форматом
>>> ls = ["A","B","c","d"] >>> type(ls) <class 'list'> >>> ss = " ".join(ls) >>> ss 'A B c d' >>> type(ss) <class 'str'> >>> ss = "*".join(ls) >>> ss 'A*B*c*d'
полоска ------- убрать пробелы с обеих сторон
rstrip ------ очистите пробелы справа
lstrip -------- очистить левые пробелы
>>> ss = " hhhhhhh " >>> ss ' hhhhhhh ' >>> ss.strip() 'hhhhhhh' >>> ss.strip() 'hhhhhhh' >>> ss ' hhhhhhh ' >>> ss.rstrip() ' hhhhhhh' >>> ss.lstrip() 'hhhhhhh '
replace ("исходный символ", "новый символ") ------ Замените соответствующий символ
>>> s 'This is a string' >>> s.replace("s","t") 'Thit it a ttring'
Срез: используется для разделения итерируемых объектов (контейнеров).
Грамматические правила:
object[start_index:end_index:step]
start_index ------- Начальный индекс (начальная позиция)
end_index ------ Конечный индекс (конечная позиция), не включает значение в end_index
шаг ---- длина шага, может быть положительным или отрицательным числом, положительное число (слева направо), отрицательное число (справа налево), значение по умолчанию — 1.
object[:] ----- 切割的是一个完整的对象 object[start_index:] ------ 从start_index开始切割到最后的位置,步长为1 object[:end_index] ------ 从最开始的位置切割到end_index处,但是不包含end_index object[start_index:end_index] ------- 从start_index开始切割到end_index处,但是不包含end_index,步长为1 object[start_index:end_index:step] ------------ 从start_index开始切割到end_index处,但是不包含end_index,步长为step
Интервал между передним закрытием и задним открытием
ls = [0,1,2,3,4,5,6,7,8,9]
1. Вырезать одно значение
>>> ls [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[0] 0 >>> ls[-4] 6
2. Вырежьте весь объект
>>> ls[:] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[::] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[::-1] #-1 表示从右往左切割 所以是倒序 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3. start_index и end_index — положительные числа.
>>> ls [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[1:6] [1, 2, 3, 4, 5] >>> ls[1:6:-1] # start_index=1 end_index = 6表示的是从1切割到6的位置,但是不包含6处的值,从左往右切割,step=-1 表示从右往左 [] >>> ls[6:1] [] >>> ls[6:1:-1] [6, 5, 4, 3, 2] >>> ls[:6] [0, 1, 2, 3, 4, 5] >>> ls[:6:-1] [9, 8, 7] >>> ls[6:] [6, 7, 8, 9] >>> ls[6::-1] [6, 5, 4, 3, 2, 1, 0] >>>
4. start_index и end_index — отрицательные числа.
>>> ls [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[-1:-6] [] >>> ls[-1:-6:-1] [9, 8, 7, 6, 5] >>> ls[-6:-1] [4, 5, 6, 7, 8] >>> ls[:-6] [0, 1, 2, 3] >>> ls[:-6:-1] [9, 8, 7, 6, 5] >>> ls[-6:] [4, 5, 6, 7, 8, 9] >>> ls[-6::-1] [4, 3, 2, 1, 0]
5. Start_index и end_index объединяются с положительным и отрицательным
>>> ls [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[1:-6] [1, 2, 3] >>> ls[1:-6:-1] [] >>> ls[-1:6] [] >>> ls[-1:6:-1] [9, 8, 7]
6. Непрерывная нарезка
>>> ls [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[:8][2:5][-1:] [4] ls[:8] ----- [0,1,2,3,4,5,6,7] ls[:8][2:5] ----- [2,3,4] ls[:8][2:5][-1:] ----- [4]
7. Три параметра нарезки также могут быть выражениями
>>> ls [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> ls[2+1:3*2:7%3] [3, 4, 5] >>> ls[3:6:1] [3, 4, 5] >>> ls[2:6:2] [2, 4]
8. Нарезкой можно разрезать и другие объекты.
>>> (1,2,3,4,5,6,7,8,9)[:3] (1, 2, 3) >>> "ABCDEFGHIJK"[::2] 'ACEGIK' >>> for i in range(1,100)[2::3][-10:]: ... print(i) ... 72 75 78 81 84 87 90 93 96 99
Вопросы на собеседовании:
1. Если при использовании срезов для вырезания данных будет превышен диапазон индексов, будет ли сообщено об ошибке?
Об ошибке не будет сообщено. Если оно превышает диапазон, будет возвращен полный объект. Если он несовместим, будет возвращено [].
2. Как отменить вывод списка в Python?
цикл реверс
[::-1]
список.обратный()