Все основные строковые функции в Python: виды, примеры и таблица
Главная » String Python
0
Python предоставляет множество встроенных функций для управления строками. Python String неизменяем, поэтому все эти функции возвращают новую строку, а исходная строка остается неизменной.
Есть много функций для работы со строкой. Однако запомнить их все нереально. Итак, здесь я делю их на разные категории:
- Обязательные строковые функции;
- Дополнительные строковые функции;
- Разные строковые функции;
- Встроенные функции, работающие со строкой;
- Полезные.
Содержание
- Обязательные строковые функции
- Дополнительные строковые функции
- Разные строковые функции
- Встроенные функции, работающие со строкой
- Полезные строковые операции
- Нужно ли их все запоминать?
Обязательные строковые функции
format() | |
split() | Функция string split() используется для разделения строки на список строк на основе разделителя. |
join() | Эта функция возвращает новую строку, которая является конкатенацией строк в итерируемом объекте со строковым объектом в качестве разделителя. |
strip() | Используется для удаления пробелов в строковом объекте. |
format_map() | Функция string format_map() возвращает отформатированную версию строки с использованием подстановок из предоставленного сопоставления. |
upper() | Мы можем преобразовать строку в верхний регистр в Python с помощью функции str.upper(). |
lower() | Эта функция создает новую строку в нижнем регистре. |
replace() | Функция string replace() используется для создания новой строки путем замены некоторых частей другой строки. |
find() | Метод String find() используется для поиска индекса подстроки в строке. |
translate() | Функция String translate() возвращает новую строку, в которой каждый символ в строке заменяется с использованием данной таблицы перевода. |
Дополнительные строковые функции
encode() | Функция string encode() используется для кодирования строки с использованием предоставленной кодировки. |
count() | Функция String count() возвращает количество вхождений подстроки в заданной строке. |
startwith() | Функция startwith() возвращает True, если строка начинается с заданного префикса, в противном случае возвращает False. |
stringndswith() | Функция stringndswith() возвращает True, если строка заканчивается заданным суффиксом, в противном случае возвращает False. |
capitalize() | Функция String capitalize() возвращает версию строки с заглавной буквы. |
center() | Функция string center() возвращает центрированную строку указанного размера. |
casefold() | Функция casefold() строки в Python возвращает копию строки в развернутом виде. Эта функция используется для сравнения строк без учета регистра. |
expandtabs() | Функция Python string expandtabs() возвращает новую строку, в которой символы табуляции (\t) заменены одним или несколькими пробелами. |
index() | Функция String index() возвращает наименьший индекс, в котором находится указанная подстрока. |
__contains__() | Класс String имеет функцию __contains __(), которую мы можем использовать, чтобы проверить, содержит ли он другую строку или нет. Мы также можем использовать оператор «in» для выполнения этой проверки. |
Разные строковые функции
isalnum() | Функция isalnum() Python возвращает True, если она состоит только из буквенно-цифровых символов. |
isalpha() | Функция String isalpha() возвращает True, если все символы в строке являются алфавитными, в противном случае – False. |
isdecimal() | Функция String isdecimal() возвращает True, если все символы в строке являются десятичными символами, в противном случае – False. |
isdigit() | Функция String isdigit() возвращает True, если все символы в строке являются цифрами, в противном случае – False. |
isidentifier() | Функция String isidentifier() возвращает True, если строка является допустимым идентификатором в соответствии с определением языка Python. |
islower() | Python String islower() возвращает True, если все символы в регистре в строке строчные и есть хотя бы один регистр, в противном случае он возвращает False. |
isnumeric() | Функция String isnumeric() возвращает True, если все символы в строке числовые, в противном случае – False. Если строка пуста, эта функция возвращает False. |
isprintable() | Функция String isprintable() возвращает True, если все символы в строке печатаются или строка пуста, в противном случае – False. |
isspace() | Функция Python isspace() возвращает True, если в строке есть только пробельные символы, в противном случае она возвращает False. |
список() | Python String istitle() возвращает True, если строка заключена в заголовок и не пуста, в противном случае возвращается False. |
isupper() | Функция String isupper() возвращает True, если все символы в регистре находятся в верхнем регистре. |
rjust(), ljust() | Служебные функции для создания новой строки указанной длины из исходной строки с выравниванием по правому и левому краю. |
swapcase() | Функция String swapcase() возвращает новую строку с символами верхнего регистра, преобразованными в нижний регистр и наоборот. |
partition() | Функция String partition() разбивает строку на основе разделителя на кортеж из трех строк. |
splitlines() | Функция String splitlines() возвращает список строк в строке. |
title() | Функция String title() возвращает версию строки в заголовке. |
zfill() | Функция String zfill (width) возвращает новую строку указанной ширины. Строка заполняется 0 с левой стороны для создания указанной ширины. |
Встроенные функции, работающие со строкой
len() | Длина строки может быть определена с помощью встроенной функции len(). |
ascii() | Функция ascii() возвращает строковое представление объекта. Эта функция внутренне вызывает функцию repr() и перед возвратом строки представления экранирует символы, отличные от ASCII, с помощью экранирования \x, \u или \U. |
bool() | Функция bool() возвращает логическое значение для объекта. У класса bool всего два экземпляра – True и False. |
bytearray() | Функция bytearray() возвращает объект bytearray, содержащий массив байтов из источника ввода. |
bytes() | Эта функция возвращает объект байтов, который представляет собой неизменяемую последовательность целых чисел в диапазоне 0 <= x <256. |
ord() | Функция ord() принимает строковый аргумент из одного символа Unicode и возвращает его целочисленное значение кодовой точки Unicode. |
enumerate() | Функция перечисления принимает последовательность, а затем превращает каждый элемент последовательности в кортеж. |
float() | Как следует из названия, функция python float() возвращает число с плавающей запятой из входного аргумента. |
hash() | Эта функция возвращает хеш-значение данного объекта. |
id() | Функция id() возвращает «идентичность» объекта. Идентификатор объекта – это целое число, которое гарантированно является уникальным и постоянным для этого объекта в течение его времени жизни. |
int() | Функция int() возвращает целочисленный объект из указанного ввода. Возвращаемый объект int всегда будет в базе 10. |
map() | Функция map() используется для применения функции ко всем элементам указанного итерируемого и возвращаемого объекта карты. |
print() | Функция print() используется для вывода данных в консоль. |
slice() | Функция slice() возвращает объект среза, представляющий набор индексов, заданных диапазоном (start, stop, step). |
type() | Эта функция возвращает тип объекта. |
Полезные строковые операции
- f-string в Python – новый и лучший способ форматирования строки, представленный в Python 3.6.
- Подстрока в Python.
- Создать случайную строку.
- Строковый модуль в Python.
- Необработанная строка.
- Многострочная строка.
- Проверка равенства строк.
- Сравнение строк.
- Конкатенация строк.
- Нарезка строки.
- Перевернуть строку.
- Строка для datetime – strptime().
- Преобразовать String в int.
- Преобразовать строку в байты.
- Преобразовать String в float.
- Преобразовать список в строку.
- Класс шаблона строки.
- Проверить, является ли переменная String.
- Объединить строку и int.
- Удалить символ из строки.
- Как добавить строки.
- Найти строку в списке.
- Удалить пробелы из строки.
Нужно ли их все запоминать?
Никто не может вспомнить их всех. Вы всегда можете найти их в своей IDE. Изображение ниже из моего файла PyCharm IDE builtins.py.
Рейтинг
( Пока оценок нет )
Васильев А.Н. / автор статьи
Помогаю в изучении Питона на примерах. Автор практических задач с детальным разбором их решений.
Загрузка …
Строковые методы
Изменение заглавной буквы строки
Тип строки Python предоставляет множество функций, которые влияют на использование заглавных букв в строке. Они включают :
str.casefold
str.upper
str.lower
str.capitalize
str.title
str.swapcase
С юникод строк (по умолчанию в Python 3), эти операции не являются 1: 1 отображения или обратимым. Большинство из этих операций предназначены для отображения, а не нормализации.
Методы casefold (), upper(), lower(), capitalize(), title(), swapcase()
str.casefold()
— создает строчную строку, которая подходит для случая нечувствительных сравнений. Это более агрессивный , чем str.lower
и может изменить строки, которые уже находятся в нижнем регистре или вызывают строки , чтобы расти в длину, и не предназначена для отображения.
"XßΣ".casefold() # 'xssσ' "XßΣ".lower() # 'xßς'
Преобразования, которые происходят в рамках casefolding, определяются Консорциумом Unicode в файле CaseFolding.txt на их веб-сайте.
str.upper()
— принимает каждый символ в строке и преобразует его в верхнем регистре эквивалента, например:
"This is a 'string'.".upper() # "THIS IS A 'STRING'."
str.lower()
— делает обратное; он берет каждый символ в строке и преобразует его в строчный эквивалент:
"This IS a 'string'.".lower() # "this is a 'string'."
str.capitalize()
— возвращает заглавную версию строки, то есть, он делает первый символ имеет верхний регистр , а остальные нижние:
"this Is A 'String'.".capitalize() # Capitalizes the first character and lowercases all others # "This is a 'string'."
str.title()
— возвращает название обсаженной версии строки, то есть, каждая буква в начале слова производится в верхнем регистре , а все остальные сделаны в нижнем регистре:
"this Is a 'String'".title() # "This Is A 'String'"
str.swapcase()
— str.swapcase
возвращает новый объект строки , в которой все строчные символы поменяны местами в верхний регистр и все символы верхнего регистра в нижний:
"this iS A STRiNG". swapcase() #Swaps case of each character # "THIS Is a strIng"
Использование в качестве str
методов класса
Следует отметить , что эти методы могут быть названы либо на струнных объектов (как показано выше) или как метод класса от str
класса (с явным вызовом str.upper
и т.д.)
str.upper("This is a 'string'") # "THIS IS A 'STRING'"
Это особенно полезно при применении одного из этих методов для многих строк сразу, скажем, на map
функции.
map(str.upper,["These","are","some","'strings'"]) # ['THESE', 'ARE', 'SOME', "'STRINGS'"]
Разбить строку на основе разделителя на список строк
str.split(sep=None, maxsplit=-1)
str.split
принимает строку и возвращает список подстрок исходной строки. Поведение отличается в зависимости от того sep
предусмотрен или опущен аргумент.
Если sep
не предусмотрен, или нет None
, то происходит расщепление везде , где есть пробела. Однако начальные и конечные пробелы игнорируются, и несколько последовательных пробельных символов обрабатываются так же, как один пробельный символ:
"This is a sentence.".split() # ['This', 'is', 'a', 'sentence.'] " This is a sentence. ".split() # ['This', 'is', 'a', 'sentence.'] " ".split() #[]
sep
параметр может быть использован для определения строки разделителей. Исходная строка разделяется там, где встречается строка-разделитель, а сам разделитель отбрасывается. Несколько последовательных разделители не обрабатываются так же , как однократный, а вызвать пустые строки , которые будут созданы.
"This is a sentence.".split('') # ['This', 'is', 'a', 'sentence.'] "Earth,Stars,Sun,Moon".split(',') # ['Earth', 'Stars', 'Sun', 'Moon'] " This is a sentence. ".split('') # ['', 'This', 'is', '', '', '', 'a', 'sentence.', '', ''] "This is a sentence.".split('e') # ['This is a s', 'nt', 'nc', '.'] "This is a sentence.".split('en') # ['This is a s', 't', 'ce. ']
По умолчанию заключается в разделении на каждом появлении разделителя, однако maxsplit
параметр ограничивает количество расщеплений , которые происходят. Значение по умолчанию -1
означает , что нет предела:
"This is a sentence.".split('e', maxsplit=0) # ['This is a sentence.'] "This is a sentence.".split('e', maxsplit=1) # ['This is a s', 'ntence.'] "This is a sentence.".split('e', maxsplit=2) # ['This is a s', 'nt', 'nce.'] "This is a sentence.".split('e', maxsplit=-1) # ['This is a s', 'nt', 'nc', '.']
str.rsplit(sep=None, maxsplit=-1)
str.rsplit
( «правый раскол») отличается от str.split
( «левый сплит») , когда maxsplit
указано. Расщепление начинается в конце строки, а не в начале:
"This is a sentence.".rsplit('e', maxsplit=1) # ['This is a sentenc', '.'] "This is a sentence.".rsplit('e', maxsplit=2) # ['This is a sent', 'nc', '.']
Примечание: Python определяет максимальное число разделений , выполняемых, в то время как большинство других языков программирования указать максимальное количество подстрок созданных. Это может создать путаницу при переносе или сравнении кода.
Заменить все вхождения одной подстроки другой подстрокой
Пайтона str
типа также есть метод для замены вхождений одной подстроки с другой подстроки в заданной строке. Для более сложных случаев можно использовать re.sub
. str.replace(old, new[, count])
:
str.replace
принимает два аргумента , old
и new
, содержащий old
подстроку , которая должна быть заменена на new
подстроку. Необязательный аргумент count
определяет число замен , чтобы быть:
Например, для того , чтобы заменить 'foo'
с 'spam'
в следующей строке, мы можем назвать str.replace
с old = 'foo'
и new = 'spam'
:
"Make sure to foo your sentence.".replace('foo', 'spam') # "Make sure to spam your sentence."
Если данная строка содержит несколько примеров , которые соответствуют old
аргументу, все вхождения заменяются значением подаваемого в new
:
"It can foo multiple examples of foo if you want. ".replace('foo', 'spam') # "It can spam multiple examples of spam if you want."
если, конечно, мы не поставляем значение для count
.В этом случае count
вхождения собираются заменяются:
"""It can foo multiple examples of foo if you want, \ or you can limit the foo with the third argument.""".replace('foo', 'spam', 1) # 'It can spam multiple examples of foo if you want, or you can limit the foo with the third argument.'
str.format и f-strings: форматировать значения в строку
Python обеспечивает интерполяцию строки и функциональность форматирования через str.format
функции, введенной в версии 2.6 и F-строк , введенных в версии 3.6.
Даны следующие переменные:
i = 10 f = 1.5 s = "foo" l = ['a', 1, 2] d = {'a': 1, 2: 'foo'}
Давайте посмотрим разное форматирование строки
"{} {} {} {} {}".format(i, f, s, l, d) str.format("{} {} {} {} {}", i, f, s, l, d) "{0} {1} {2} {3} {4}".format(i, f, s, l, d) "{0:d} {1:0. 1f} {2} {3!r} {4!r}".format(i, f, s, l, d) "{i:d} {f:0.1f} {s} {l!r} {d!r}".format(i=i, f=f, s=s, l=l, d=d)
Все утверждения выше эквивалентны "10 1.5 foo ['a', 1, 2] {'a': 1, 2: 'foo'}"
f"{i} {f} {s} {l} {d}" f"{i:d} {f:0.1f} {s} {l!r} {d!r}"
Для справки, Python также поддерживает классификаторы в стиле C для форматирования строк. Примеры , приведенные ниже, эквивалентны тем , которые выше, но str.format
вариантов являются предпочтительными из — за преимущества в гибкости, последовательности обозначений и расширяемости:
"%d %0.1f %s %r %r" % (i, f, s, l, d) "%(i)d %(f)0.1f %(s)s %(l)r %(d)r" % dict(i=i, f=f, s=s, l=l, d=d)
Скобки используются для интерполяции в str.format
также может быть пронумерована для уменьшения дублирования при форматировании строк. Например, следующее эквивалентно:
"I am from {}. I love cupcakes from {}!".format("Australia", "Australia") #"I am from Australia. I love cupcakes from Australia!" "I am from {0}. I love cupcakes from {0}!".format("Australia") #"I am from Australia. I love cupcakes from Australia!"
В то время как официальная документация питона, как обычно, достаточно тщательно, pyformat.info имеет большой набор примеров с подробными объяснениями.
Кроме того, {
и }
символы могут быть экранированы с помощью двойных скобок:
"{{'{}': {}, '{}': {}}}".format("a", 5, "b", 6) # "{'a': 5, 'b': 6}"
См Строка форматирования для получения дополнительной информации. str.format()
был предложен в PEP 3101 и F-строк в PEP 498 .
Подсчет количества появлений подстроки в строке
Один метод доступен для подсчета количества вхождений подстроки в другой строки, str.count
. str.count(sub[, start[, end]])
str.count
возвращает int
, указывающее количество неперекрывающихся вхождений подстрок sub
в другой строке. Необязательные аргументы start
и end
указывают на начало и конец , в котором поиск будет происходить. По умолчанию start = 0
и end = len(str)
означает всю строку будет искать:
s = "She sells seashells by the seashore." s.count("sh") # 2 s.count("se") # 3 s.count("sea") # 2 s.count("seashells") # 1
Задавая различные значения для start
, end
, мы можем получить более локализованный поиск и сосчитать, например, если start
равно 13
призыва к:
s.count("sea", start) # 1
эквивалентно:
t = s[start:] t.count("sea") # 1
Проверьте начальный и конечный символы строки
Для того , чтобы проверить начало и окончание данной строки в Python, можно использовать методы str.startswith()
и str.endswith()
. str.startswith(prefix[, start[, end]])
Как следует это имя, str.startswith
используется для проверки , начинается ли заданная строка с заданными символами в prefix
.
s = "This is a test string" s. startswith("T") # True s.startswith("Thi") # True s.startswith("thi") # False
Необязательные аргументы start
и end
указать начальную и конечную точки , из которых тестирование будет начать и закончить. В следующем примере, указав начальное значение 2
наша строка будет просматриваться с позиции 2
, а затем:
s.startswith("is", 2) # True
Это дает True
, так как s[2] == 'i'
и s[3] == 's'
.
Вы можете также использовать tuple
, чтобы проверить , если он начинается с какой — либо из набора строк
s.startswith(('This', 'That')) # True s.startswith(('ab', 'bc')) # False
str.endswith(prefix[, start[, end]])
— точно похож на str.startswith
с той лишь разницей, что он ищет окончание символов и не начиная символов. Например, чтобы проверить, заканчивается ли строка полной остановкой, можно написать:
s = "this ends in a full stop. " s.endswith('.') # True s.endswith('!') # False
как и с startswith
более одного символа может использоваться как окончание последовательности:
s.endswith('stop.') # True s.endswith('Stop.') # False
Вы можете также использовать tuple
, чтобы проверить , если он заканчивается любой из набора строк
s.endswith(('.', 'something')) # True s.endswith(('ab', 'bc')) # False
Проверка того, из чего состоит строка
Пайтона str
тип также имеет целый ряд методов , которые могут быть использованы для оценки содержимого строки. Это str.isalpha
, str.isdigit
, str.isalnum
, str.isspace
.Капитализация может быть проверена с str.isupper
, str.islower
и str.istitle
. str.isalpha
str.isalpha
не принимает никаких аргументов и возвращает True
, если все символы в данной строке являются буквенными, например:
"Hello World". isalpha() # contains a space # False "Hello2World".isalpha() # contains a number # False "HelloWorld!".isalpha() # contains punctuation # False "HelloWorld".isalpha() # True
В краевой случае пустая строка вычисляет значение False
при использовании "".isalpha()
. str.isupper
, str.islower
, str.istitle
Эти методы проверяют использование заглавных букв в заданной строке.
str.isupper
это метод , который возвращает True
, если все символы в данной строке в верхнем регистре и False
иначе.
"HeLLO WORLD".isupper() # False "HELLO WORLD".isupper() # True "".isupper() # False
С другой стороны , str.islower
это метод , который возвращает True
, если все символы в данной строке в нижнем регистре и False
иначе.
"Hello world".islower() # False "hello world".islower() # True "".islower() # False
str. istitle
возвращает True
, если данная строка названия обсаженное; то есть каждое слово начинается с заглавной буквы, за которой следуют строчные буквы.
"hello world".istitle() # False "Hello world".istitle() # False "Hello World".istitle() # True "".istitle() False
Методы str.isdecimal , str.isdigit , str.isnumeric
str.isdecimal
возвращает строка , является ли последовательность десятичных цифр, пригодная для представления десятичного числа.
str.isdigit
включает в себя цифру не в форме , подходящей для представления десятичного числа, такие , как надстрочные цифры.
str.isnumeric
включает в себя любые числовые значения, даже если не цифры, такие как значения вне диапазона 0-9.
isdecimal isdigit isnumeric 12345 True True True ១2߃໔5 True True True ①²³🄅₅ False True True ⑩⒓ False False True Five False False False
Байтовые строки ( bytes
в Python 3, str
в Python 2), поддерживает только isdigit
, который проверяет только основные ASCII цифр.
Как str.isalpha
пустая строка вычисляет значение False
. str.isalnum
Это сочетание str.isalpha
и str.isnumeric
, в частности , он имеет значение True
, если все символы в данной строке являются буквенно — цифровыми, то есть они состоят из буквенных или цифровых символов:
"Hello2World".isalnum() # True "HelloWorld".isalnum() # True "2022".isalnum() # True "Hello World".isalnum() # contains whitespace # False
str.isspace
— Возвращает True
, если строка содержит только пробельные символы.
"\t\r\n".isspace() # True " ".isspace() # True
Иногда строка выглядит «пустой», но мы не знаем, так ли это, потому что она содержит только пробелы или вообще не содержит символов
"".isspace() # False
Чтобы покрыть этот случай нам нужен дополнительный тест
my_str = '' my_str.isspace() # False my_str. isspace() or not my_str # True
Но самый короткий путь , чтобы проверить , если строка пуста или содержит только пробельные символы, чтобы использовать strip
(без аргументов она удаляет все начальные и конечные пробельные символы)
not my_str.strip() # True
str.translate: перевод символов в строке
Python поддерживает translate
метод на str
типа , который позволяет указать таблицу преобразования (используется для замены), а также любые символы , которые должны быть удалены в процессе.
str.translate(table[, deletechars])
— параметр table
— это таблица поиска, которая определяет отображение от одного символа к другому. deletechars
— список символов, которые должны быть удалены из строки.
maketrans
метод ( str.maketrans
в Python 3 и string.maketrans
в Python 2) позволяет создать таблицу перевода.
translation_table = str. maketrans("aeiou", "12345") my_string = "This is a string!" translated = my_string.translate(translation_table) # 'Th4s 3s 1 str3ng!'
translate
метод возвращает строку , которая является переведенной копией исходной строки. Вы можете установить table
аргумент None
, если требуется только для удаления символов.
'this syntax is very useful'.translate(None, 'aeiou') 'ths syntx s vry sfl'
Удаление нежелательных начальных / конечных символов из строки
Три метода при условии , что предлагают возможность раздеться начальные и конечные символы из строки: str.strip
, str.rstrip
и str.lstrip
.Все три метода имеют одинаковую подпись, и все три возвращают новый строковый объект с удаленными нежелательными символами. str.strip([chars])
str.strip
действует на заданной строки и удаляет (полоски) или каких — либо ведущих задних символов , содержащихся в аргументе chars
; если chars
не входит в комплект или нет None
, все пробельные символы удаляются по умолчанию. Например:
" a line with leading and trailing space ".strip() # 'a line with leading and trailing space'
Если chars
поставляются, все символы , содержащиеся в нем, удаляются из строки, которая возвращается. Например:
">>> a Python prompt".strip('>') # убирает символ '>' и пробел после него #'a Python prompt'
str.rstrip([chars])
и str.lstrip([chars])
— Эти методы имеют ту же семантику и аргументы с str.strip()
, их отличие заключается в том направлении , откуда они начинаются. str.rstrip()
начинается с конца строки в то время как str.lstrip()
расщепляется с начала строки.
Например, при использовании str.rstrip
:
" spacious string ".rstrip() # ' spacious string'
В то время как, используя str.lstrip
:
" spacious string ".rstrip() # 'spacious string ' " spacious string ". rstrip().lstrip() # 'spacious string'
Сравнение строк без учета регистра
Сравнение строки без учета регистра кажется чем-то тривиальным, но это не так. В этом разделе рассматриваются только строки Unicode (по умолчанию в Python 3). Обратите внимание, что Python 2 может иметь незначительные недостатки по сравнению с Python 3 — более поздняя обработка юникода гораздо более полная.
Первое, на что следует обратить внимание, это то, что преобразования с удалением регистра в юникоде не являются тривиальными. Существует текст , для которого text.lower() != text.upper().lower()
, Например, "ß"
:
>>> "ß".lower() 'ß' >>> "ß".upper().lower() 'ss'
Но предположим, что вы хотели регистронезависмо сравнивать "BUSSE"
и "Buße"
.Черт возьми, вы , вероятно , также хотят , чтобы сравнить "BUSSE"
и "BUẞE"
равный — это новая форма капитала. Рекомендуемый способ заключается в использовании casefold
:
help(str. casefold) """ Help on method_descriptor: casefold(self, /) Return a version of the string suitable for caseless comparisons """
Не просто использовать lower
.Если casefold
не доступен, делая .upper().lower()
помогает (но только немного).
Тогда вы должны рассмотреть акценты. Если визуализатор шрифт хорошо, вы , вероятно , думаете , "ê" == "ê"
— но это не так :
"ê" == "ê" # False
Это потому что они на самом деле
unicodedata [unicodedata.name(char) for char in "ê"] # ['LATIN SMALL LETTER E WITH CIRCUMFLEX'] [unicodedata.name(char) for char in "ê"] # ['LATIN SMALL LETTER E', 'COMBINING CIRCUMFLEX ACCENT'
Самый простой способ справиться с этим unicodedata.normalize
.Вы , вероятно , хотите использовать NFKD нормализации, но не стесняйтесь проверить документацию. Тогда один
unicodedata.normalize("NFKD", "ê") == unicodedata.normalize("NFKD", "ê") # True
Чтобы закончить, здесь это выражается в функциях:
import unicodedata def normalize_caseless(text): return unicodedata. normalize("NFKD", text.casefold()) def caseless_equal(left, right): return normalize_caseless(left) == normalize_caseless(right)
Объединить список строк в одну строку
Строка может быть использована в качестве разделителя , чтобы присоединиться к списку строк вместе в одну строку с помощью join()
метод. Например, вы можете создать строку, где каждый элемент в списке разделен пробелом.
" ".join(["once","upon","a","time"]) # "once upon a time"
В следующем примере строковые элементы разделяются тремя дефисами.
"---".join(["once", "upon", "a", "time"]) # "once---upon---a---time"
Полезные константы строкового модуля
Пайтона string
модуль предоставляет константы для операций , связанных строк. Для того, чтобы использовать их, импортировать string
модуля:
import string
Сочетание ascii_lowercase
и ascii_uppercase
:
string.ascii_letters # 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Строку можно реверсировать с использованием встроенной функции В то время как с использованием Python предоставляет функции для выравнивания строк, позволяя заполнять текст, чтобы упростить выравнивание различных строк. Ниже приведен пример Содержимое файлов и сетевых сообщений может представлять собой закодированные символы. Их часто нужно преобразовывать в юникод для правильного отображения. В Python 3 вам может потребоваться преобразовать массивы байтов (называемые «байтовым литералом») в строки символов Unicode. По умолчанию теперь строка Unicode, и байтовой строки литералов теперь должны быть введены как Python делает его чрезвычайно интуитивным, чтобы проверить, содержит ли строка заданную подстроку. Просто используйте Примечание: тестирование пустой строки всегда будет приводить ❮ Строковые методы Вставьте цену в заполнитель, цена должна быть
в формате с двумя десятичными знаками с фиксированной точкой: txt = "Всего за {цена:.2f} долларов!" Попробуйте сами » Метод Заполнитель определяется с помощью фигурных скобок: {}. Узнайте больше о
заполнители в разделе «Заполнители» ниже. Метод строка .format( значение1, значение2. .. ) Значения представляют собой список значений, разделенных запятыми,
список ключей=значений или их комбинация. Значения могут относиться к любому типу данных. Заполнители можно идентифицировать с помощью именованных индексов Использование разных значений заполнителей: txt1 = "Мой
имя {fname}, я {возраст}".format(fname = "Джон", возраст = 36) Попробуйте сами » результат: ❮ Строковые методы 9003 900
Справочник по HTML string. _`{|}~ \t\n\r\x0b\x0c'
Сторнирование строки (reverse)
reversed()
, которая принимает строку и возвращает итератор в обратном порядке.reversed('hello')
# <reversed object at 0x0000000000000000>
[char for char in reversed('hello')]
# ['o', 'l', 'l', 'e', 'h']
reversed()
могут быть обернуты в вызове ''.join()
, чтобы сделать строку из итератора.''.join(reversed('hello'))
# 'olleh'
reversed()
может быть более удобными для чтения для непосвященных пользователей Python, используя расширенную нарезку с шагом -1
быстрее и более кратким. Вот, попробуйте реализовать это как функцию:def reversed_string(main_string):
return main_string[::-1]
reversed_string('hello')
# 'olleh'
Выравнивание строк
str.ljust
и str.rjust
:interstates_lengths = {
5: (1381, 2222),
19: (63, 102),
40: (2555, 4112),
93: (189,305),
}
for road, length in interstates_lengths.items():
miles,kms = length
print('{} -> {} mi. ({} km.)'.format(str(road).rjust(4), str(miles).ljust(4), str(kms).ljust(4)))
# 5 -> 1381 mi. (2222 km.)
# 19 -> 63 mi. (102 km.)
# 40 -> 2555 mi. (4112 km.)
# 93 -> 189 mi. (305 km.)
ljust
и rjust
очень похожи. Оба имеют width
параметр и необязательный fillchar
параметр. Любая строка , создаваемая эти функции, по крайней мере до тех пор , как width
параметр , который был передан в функцию. Если строка длиннее , чем width
alread, она не усекается. fillchar
аргумент, который по умолчанию используется символ пробела ' '
должен быть один символ, а не multicharacter строка.ljust
функция подушечки конца строки она называется на с fillchar
до тех пор, пока width
длиной символов. rjust
функция подушечки начала строки в подобной манере. Таким образом, l
и r
в названиях этих функций относятся к стороне , что исходная строка, а не fillchar
, расположена в выходной строке.Преобразование между str или байтовыми данными и символами юникода
b''
, b""
, и т.д. Байт буквальным будет возвращать True
в isinstance(some_val, byte)
, предполагая some_val
быть строка , которая может быть закодированы в байтах.# You get from file or network "© abc" encoded in UTF-8
s = b'\xc2\xa9 abc' # s is a byte array, not characters
# In Python 3, the default string literal is Unicode; byte array literals need a leading b
s[0] # b'\xc2' - meaningless byte (without context such as an encoding)
type(s) # bytes - now that byte arrays are explicit, Python can show that.
u = s.decode('utf-8') # '© abc' on a Unicode terminal
# bytes.decode конвертирует byte массив в строчку (которая в Python 3 будет Unicode)
u[0] # '\u00a9' - Unicode Character 'COPYRIGHT SIGN' (U+00A9) '©'
type(u) # str
# Строковый литерал по умолчанию в Python 3 — UTF-8 Unicode.
u.encode('utf-8') # b'\xc2\xa9 abc'
# str.encode выдает массив byte, показываю ASCII-range bytes как незаменные символы.
Строка содержит
in
операторе:"foo" in "foo.baz.bar"
# True
True
:"" in "test"
# True
Формат строки Python () Метод
Пример
print(txt.format(price = 49)) Определение и использование
format()
форматирует указанные
значение(я) и вставьте их в местозаполнитель строки. format()
возвращает форматированный
нить. Синтаксис
Значения параметров
Параметр Описание значение1, значение2... Обязательно. Одно или несколько значений, которые следует отформатировать и вставить в
Струна. Заполнители
{цена}
, номер
индексы {0}
или даже пустые заполнители {}
. Пример
txt2 = "Мой
имя {0}, я {1}".format("Джон",36)
txt3 = "Мой
имя {}, я {}".format("John",36) Типы форматирования
:<
Попробуйте Результат выравнивается по левому краю (в доступном пространстве) :>
Попробуйте Выравнивает результат по правому краю (в доступном пространстве) 9 Попробуйте Центр выравнивает результат (в доступном пространстве) :=
Попробуйте Помещает знак в крайнее левое положение :+
Попробуйте Используйте знак плюс, чтобы указать, является ли результат положительным или отрицательным :-
Попробуйте Используйте знак минус только для отрицательных значений :
Попробуйте Используйте пробел, чтобы вставить дополнительный пробел перед положительными числами (и знак минус
перед отрицательными числами) :,
Попробуйте Используйте запятую в качестве разделителя тысяч :_
Попробуйте Использовать подчеркивание в качестве разделителя тысяч :б
Попробуйте Двоичный формат :с
Преобразует значение в соответствующий символ Юникода :д
Попробуйте Десятичный формат :е
Попробуйте Научный формат, со строчной буквой e :Е
Попробуйте Научный формат, с заглавной буквой E :ф
Попробуйте Фиксированный формат номера точки :F
Попробуйте Фиксированный формат номера точки, в верхнем регистре (показать инф
и нан
как INF
и НАН
) :г
Общий формат :G
Общий формат (используется заглавная буква E для научных обозначений) :о
Попробуйте Восьмеричный формат :х
Попробуйте Шестнадцатеричный формат, нижний регистр :Х
Попробуйте Шестнадцатеричный формат, верхний регистр :n
Числовой формат :%
Попробуйте Процентный формат ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTML
Учебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3. CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery Основные примеры
Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
ФОРУМ | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.
Copyright 1999-2022 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Метод Python String index()
❮ Строковые методы
Пример
Где в тексте слово "добро пожаловать"?:
txt = «Привет, добро пожаловать в мой мир».
x = txt.index("добро пожаловать")
print(x)
Попробуйте сами »
Определение и использование
Метод index()
находит первое
возникновение указанного значения.
Метод index()
вызывает исключение, если значение не найдено.
Метод index()
почти такой же, как найти()
метод, единственная разница в том, что find()
метод возвращает -1, если значение не найдено. (См. пример ниже)
Синтаксис
строка . index( значение, начало, конец )
Значения параметров
Описание | |
---|---|
значение | Обязательно. Значение для поиска |
начало | Дополнительно. С чего начать поиск. По умолчанию 0 |
конец | Дополнительно. Где закончить поиск. По умолчанию до конца строки |
Другие примеры
Пример
Где в тексте первое вхождение буквы "e"?:
txt = «Привет, добро пожаловать в мой мир».
х = txt.index("е")
print(x)
Попробуйте сами »
Пример
Где в тексте первое вхождение буквы "e" при Вы ищете только между позициями 5 и 10?:
txt = «Привет, добро пожаловать в мой мир».
х = txt. index ("е", 5, 10)
print(x)
Попробуйте сами »
Пример
Если значение не найдено, метод find() возвращает -1, но index() метод вызовет исключение:
txt = «Привет, добро пожаловать в мой мир».
print(txt.find("q"))
print(txt.index("q"))
Попробуйте сами »
❮ Строковые методы
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3.CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
9003
28 Справочник по HTMLСправочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Top Examples Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.