Python — строки
Предыдущая страницаСледующая страница
Строки являются одними из самых популярных типов в Python. Мы можем создать их, просто заключив символы в кавычки. Python обрабатывает одинарные кавычки так же, как двойные кавычки. Создание строк так же просто, как присвоение значения переменной. Например —
var1 = 'Hello World!' var2 = "Python Programming"
Доступ к значениям в строках
Python не поддерживает тип символов; они рассматриваются как строки длины один, поэтому также считаются подстрокой.
Чтобы получить доступ к подстрокам, используйте квадратные скобки для нарезки вместе с индексом или индексами, чтобы получить вашу подстроку. Например —
Живая демонстрация#!/usr/bin/python var1 = 'Hello World!' var2 = "Python Programming" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5]
Когда приведенный выше код выполняется, он дает следующий результат —
var1[0]: H var2[1:5]: ytho
Обновление строк
Вы можете «обновить» существующую строку, (повторно) назначив переменную другой строке. Новое значение может быть связано со своим предыдущим значением или с совершенно другой строкой. Например —
Живая демонстрация#!/usr/bin/python var1 = 'Hello World!' print "Updated String :- ", var1[:6] + 'Python'
Когда приведенный выше код выполняется, он дает следующий результат —
Updated String :- Hello Python
Экран-символы
Следующая таблица представляет собой список escape-символов или непечатаемых символов, которые можно представить с помощью обратной косой черты.
Экранирующий символ интерпретируется; в одинарных, а также в двойных кавычках.
Обозначение обратной косой черты | Шестнадцатеричный символ | Описание |
---|---|---|
\a | 0x07 | Звонок или оповещение |
\b | 0x08 | Возврат |
\cx | <тд> тд>Control-x | |
\C-x | <тд> тд>Control-x | |
\e | 0x1b | Побег |
\f | 0x0c | Подача страницы |
\M-\C-x | <тд> тд>Мета-Контроль-х | |
\n | 0x0a | Новая строка |
\nnn | <тд> тд>Восьмеричная запись, где n находится в диапазоне 0,7 | |
\r | 0x0d | Возврат каретки |
\s | 0x20 | Космос |
\t | 0x09 | Вкладка |
\v | 0x0b | Вертикальная вкладка |
\x | <тд> тд>Персонаж x | |
\xnn | <тд> тд>Шестнадцатеричная запись, где n находится в диапазоне 0,9, a.f или A.F |
Строковые специальные операторы
Предположим, строковая переменная a содержит «Hello» и переменную b удерживает «Python», затем —
Оператор | Описание | Пример |
---|---|---|
+ | Конкатенация — добавляет значения по обе стороны от оператора | a + b даст HelloPython |
* | Повторение — создает новые строки, объединяя несколько копий одной и той же строки | a*2 даст -HelloHello |
[] | Slice — дает символ из заданного индекса | a[1] даст e |
[ :] | Range Slice — дает символы из заданного диапазона | a[1:4] даст элл |
в | Членство — возвращает true, если в данной строке существует символ | H в a даст 1 |
нет в | Членство — возвращает true, если символ не существует в заданной строке | M не в a даст 1 |
р/р | Необработанная строка — подавляет фактическое значение управляющих символов. Синтаксис для необработанных строк точно такой же, как и для обычных строк, за исключением оператора необработанной строки, буквы «r», которая предшествует кавычкам. "r" может быть строчной (r) или прописной (R) и должна быть помещена непосредственно перед первой кавычкой. | распечатать r'\n' отпечатков \n и распечатать R'\n'отпечатков \n |
% | Format — выполняет форматирование строки | См. следующий раздел |
Оператор форматирования строк
Одной из самых крутых возможностей Python является оператор форматирования строки %. Этот оператор уникален для строк и компенсирует набор функций из семейства C printf(). Ниже приведен простой пример —
Живая демонстрация#!/usr/bin/python print "My name is %s and weight is %d kg!" % ('Zara', 21)
Когда приведенный выше код выполняется, он дает следующий результат —
My name is Zara and weight is 21 kg!
Вот список полного набора символов, которые можно использовать вместе с % −
Формат символа | Конверсия |
---|---|
%c | персонаж |
%s | преобразование строки через str() перед форматированием |
%i | десятичное целое со знаком |
%d | десятичное целое со знаком |
%u | десятичное целое без знака |
%o | восьмеричное целое |
%x | шестнадцатеричное целое (строчные буквы) |
%X | шестнадцатеричное целое (заглавные буквы) |
%e | экспоненциальное представление (со строчной буквой "e") |
%E | экспоненциальное представление (с ЗАГЛАВНОЙ буквой 'E') |
%f | вещественное число с плавающей запятой |
%g | более короткая из %f и %e |
%G | более короткая из %f и %E |
Другие поддерживаемые символы и функции перечислены в следующей таблице —
Символ | Функциональность |
---|---|
* | аргумент указывает ширину или точность |
- | выравнивание по левому краю |
+ | показать знак |
оставьте пробел перед положительным числом | |
# | добавьте восьмеричный начальный ноль ( '0' ) или шестнадцатеричный начальный '0x' или '0X', в зависимости от того, использовался ли 'x' или 'X'. |
0 | дополнить слева нулями (вместо пробелов) |
% | '%%' оставляет вас с одним литералом '%' |
(var) | переменная сопоставления (аргументы словаря) |
мн.ч. | m — минимальная общая ширина, а n — количество цифр, отображаемых после запятой (если применимо) |
Тройные кавычки
Тройные кавычки Python приходят на помощь, позволяя строкам занимать несколько строк, включая дословные символы новой строки, символы табуляции и любые другие специальные символы.
Синтаксис тройных кавычек состоит из трех последовательных одинарных или двойных кавычки.
Живая демонстрация#!/usr/bin/python para_str = """this is a long string that is made up of several lines and non-printable characters such as TAB ( \t ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ \n ], or just a NEWLINE within the variable assignment will also show up. """ print para_str
Когда приведенный выше код выполняется, он дает следующий результат. Обратите внимание, как каждый отдельный специальный символ был преобразован в его печатную форму, вплоть до последнего символа новой строки в конце строки между символом «вверх». и закрывающие тройные кавычки. Также обратите внимание, что символы NEWLINE встречаются либо с явным возвратом каретки в конце строки, либо с ее escape-кодом (\n) —
this is a long string that is made up of several lines and non-printable characters such as TAB ( ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ ], or just a NEWLINE within the variable assignment will also show up.
Необработанные строки вообще не рассматривают обратную косую черту как специальный символ. Каждый символ, который вы вставляете в необработанную строку, остается таким, каким вы его написали —
Живая демонстрация#!/usr/bin/python print 'C:\\nowhere'
Когда приведенный выше код выполняется, он дает следующий результат —
C:\nowhere
Теперь давайте воспользуемся необработанной строкой. Мы бы поместили выражение в r'expression' следующим образом —
Живая демонстрация#!/usr/bin/python print r'C:\\nowhere'
Когда приведенный выше код выполняется, он дает следующий результат —
C:\\nowhere
Строка Юникода
Обычные строки в Python хранятся внутри как 8-битный ASCII, а строки Unicode хранятся как 16-битный Unicode. Это позволяет использовать более разнообразный набор символов, включая специальные символы из большинства языков мира. Я ограничу обработку строк Unicode следующим:
Живая демонстрация#!/usr/bin/python print u'Hello, world!'
Когда приведенный выше код выполняется, он дает следующий результат —
Hello, world!
Как видите, строки Unicode используют префикс u, так же как необработанные строки используют префикс r.
Встроенные строковые методы
Python включает следующие встроенные методы для работы со строками —
Серийный номер | Методы с описанием |
---|---|
1 | заглавные буквы() Делает первую букву строки заглавной |
2 | центр (ширина, символ заполнения) Возвращает строку, дополненную пробелами, в которой исходная строка центрирована по ширине столбцов. |
3 | count(str, beg=0,end=len(string)) Подсчитывает, сколько раз str встречается в строке или в подстроке строки, если заданы начальный индекс beg и конечный индекс end. |
4 | декодировать(кодировка='UTF-8',ошибки='строгая') Декодирует строку, используя кодек, зарегистрированный для кодирования. Кодировка по умолчанию соответствует кодировке строки по умолчанию. |
5 | кодировать(кодировка='UTF-8',ошибки='строгая') Возвращает закодированную строковую версию строки; при ошибке по умолчанию выдается ValueError, если ошибки не указаны с помощью «игнорировать» или «заменить». |
6 | endswith(suffix, beg=0, end=len(string)) Определяет, заканчивается ли строка или подстрока строки (если заданы начальный индекс beg и конечный индекс end) суффиксом; возвращает true, если это так, и false в противном случае. |
7 | expandtabs(tabsize=8) Расширяет вкладки в строке до нескольких пробелов; по умолчанию 8 пробелов на табуляцию, если размер табуляции не указан. |
8 | найти(str, beg=0 end=len(string)) Определить, встречается ли str в строке или в подстроке строки, если заданы начальный индекс beg и конечный индекс end, возвращает индекс, если он найден, и -1 в противном случае. |
9 | index(str, beg=0, end=len(string)) То же, что и find(), но вызывает исключение, если строка не найдена. |
10 | изальнум() Возвращает true, если строка содержит хотя бы 1 символ и все символы буквенно-цифровые, и false в противном случае. |
11 | исальфа() Возвращает true, если строка содержит хотя бы 1 символ и все символы являются буквенными, и false в противном случае. |
12 | isdigit() Возвращает true, если строка содержит только цифры, и false в противном случае. |
13 | ниже() Возвращает true, если в строке есть хотя бы 1 символ с регистром и все символы с регистром в нижнем регистре, и false в противном случае. |
14 | цифровой() Возвращает true, если строка Юникода содержит только числовые символы, и false в противном случае. |
15 | isspace() Возвращает true, если строка содержит только пробельные символы, и false в противном случае. |
16 | istitle() Возвращает true, если строка имеет правильный «заглавный регистр», и false в противном случае. |
17 | верхний() Возвращает true, если в строке есть хотя бы один символ в верхнем регистре и все символы в верхнем регистре, в противном случае — false. |
18 | присоединиться(последовательность) Объединяет (объединяет) строковые представления элементов в последовательности seq в строку со строкой-разделителем. |
19 | len(строка) Возвращает длину строки |
20 | ljust(ширина[, fillchar]) Возвращает строку, дополненную пробелами, с исходной строкой, выровненной по левому краю до общего количества столбцов ширины. |
21 | ниже() Преобразует все прописные буквы строки в строчные. |
22 | lstrip() Удаляет все начальные пробелы в строке. |
23 | maketrans() Возвращает таблицу перевода для использования в функции перевода. |
24 | макс(стр) Возвращает максимальный алфавитный символ из строки str. |
25 | мин(стр) Возвращает минимальный буквенный символ из строки str. |
26 | заменить(старый, новый [, макс.]) Заменяет все вхождения слова old в строке новыми или максимальное число вхождений, если задано максимальное число. |
27 | rfind(str, beg=0,end=len(string)) То же, что find(), но поиск в строке в обратном направлении. |
28 | rindex(str, beg=0, end=len(string)) То же, что index(), но поиск в строке в обратном направлении. |
29 | rjust(width,[, fillchar]) Возвращает строку, дополненную пробелами, с исходной строкой, выровненной по правому краю до общего количества столбцов ширины. |
30 | rstrip() Удаляет все пробелы в конце строки. |
31 | split(str="", num=string.count(str)) Разделяет строку в соответствии с разделителем str (пробел, если не указан) и возвращает список подстрок; разбить на не более чем число подстрок, если они заданы. |
32 | splitlines( num=string.count('\n')) Разбивает строку на все (или количество) символов NEWLINE и возвращает список каждой строки с удаленными символами NEWLINE. |
33 | startswith(str, beg=0,end=len(string)) Определяет, начинается ли строка или подстрока строки (если заданы начальный индекс beg и конечный индекс end) с подстроки str; возвращает true, если это так, и false в противном случае. |
34 | полоса([символы]) Выполняет как lstrip(), так и rstrip() для строки. |
35 | свопкейс() Инвертирует регистр для всех букв в строке. |
36 | название() Возвращает версию строки в заглавном регистре, то есть все слова начинаются с прописных букв, а остальные строчные. |
37 | перевести(таблица, deletechars="") Переводит строку в соответствии с таблицей перевода str(256 символов), удаляя те, что в строке del. |
38 | верхний() Преобразует строчные буквы строки в прописные. |
39 | zfill (ширина) Возвращает исходную строку, дополненную нулями слева, до общего количества символов ширины; предназначенный для чисел, zfill() сохраняет любой заданный знак (кроме одного нуля). |
40 | десятичный() Возвращает true, если строка Unicode содержит только десятичные символы, и false в противном случае. |
Python
- C# Строка
- Операторы Python
- Словарь Питона
- Строки Python:заменить, объединить, разделить, перевернуть, прописные и строчные буквы
- Функция Python String strip() с ПРИМЕРОМ
- Количество строк Python() с ПРИМЕРАМИ
- Python String format() Объясните с ПРИМЕРАМИ
- Длина строки Python | Пример метода len()
- Метод Python String find() с примерами
- Функция Enumerate() в Python:цикл, кортеж, строка (пример)