Строки являются одними из самых популярных типов в 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-или непечатаемых символов, которые могут быть представлены с помощью обратной косой черты.
Экранирующий персонаж интерпретируется; в одинарных и двойных кавычках.
Обратная косая черта | Шестнадцатеричный символ | Описание |
---|---|---|
\ а | 0x07 | Звонок или оповещение |
\ б | 0x08 | возврат на одну позицию |
\ сх | Контроль-х | |
\ Cx | Контроль-х | |
\ е | 0x1b | Побег |
\ е | 0x0c | Под.стр |
\ M- \ Cx | Meta-Control-х | |
\ п | 0x0a | Новая линия |
\ NNN | Восьмеричное обозначение, где n находится в диапазоне 0,7 | |
\р | 0x0d | Возврат каретки |
\ s | 0x20 | Космос |
\ т | 0x09 | табуляция |
\ v | 0x0B | Вертикальная вкладка |
\Икс | Персонаж х | |
\ Хпп | Шестнадцатеричное обозначение, где n находится в диапазоне 0,9, af или AF |
Строковые специальные операторы
Предположим, что строковая переменная a содержит «Hello», а переменная b содержит «Python», тогда —
оператор | Описание | пример |
---|---|---|
+ | Конкатенация — добавляет значения по обе стороны от оператора | a + b даст HelloPython |
* | Повторение — создает новые строки, объединяя несколько копий одной и той же строки | * 2 даст -HelloHello |
[] | Slice — дает символ из заданного индекса | [1] даст е |
[:] | Range Slice — дает персонажей из заданного диапазона | [1: 4] даст все |
в | Членство — возвращает true, если в указанной строке есть символ | H в даст 1 |
не в | Членство — возвращает значение true, если символ не существует в данной строке | М не в дадут 1 |
г / Р | Raw String — Подавляет фактическое значение символов Escape. Синтаксис для необработанных строк точно такой же, как и для обычных строк, за исключением оператора необработанной строки, буквы «r», которая предшествует кавычкам. Буква «r» может быть строчной (r) или прописной (R) и должна быть расположена непосредственно перед первой кавычкой. | напечатайте r ‘\ n’ print \ n и напечатайте R ‘\ n’prints \ n |
% | Формат — выполняет форматирование строки | Смотрите в следующем разделе |
Оператор форматирования строки
Одна из самых крутых возможностей 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!
Вот список полного набора символов, который можно использовать вместе с% —
Символ формата | преобразование |
---|---|
% с | персонаж |
% s | преобразование строки через str () перед форматированием |
%я | знаковое десятичное целое |
% d | знаковое десятичное целое |
% U | целое число без знака |
% о | восьмеричное целое |
%Икс | шестнадцатеричное целое (строчные буквы) |
%ИКС | шестнадцатеричное целое (заглавные буквы) |
% е | экспоненциальная запись (строчными буквами «е») |
% E | экспоненциальная запись (с верхним регистром ‘E’) |
% е | вещественное число с плавающей точкой |
%г | короче% f и% e |
%Г | короче% f и% E |
Другие поддерживаемые символы и функции перечислены в следующей таблице.
Условное обозначение | функциональность |
---|---|
* | аргумент указывает ширину или точность |
— | левое оправдание |
+ | показать знак |
<Зр> | оставьте пробел перед положительным числом |
# | добавьте восьмеричный начальный ноль (‘0’) или шестнадцатеричный ведущий ‘0x’ или ‘0X’, в зависимости от того, были ли использованы ‘x’ или ‘X’. |
0 | накладка слева с нулями (вместо пробелов) |
% | «%%» оставляет вас с одним литералом «%» |
(Вар) | переменная сопоставления (словарные аргументы) |
Миннесота | m — минимальная общая ширина, а n — количество цифр, отображаемых после десятичной точки (если применимо). |
Тройные цитаты
Выручают тройные кавычки Python, позволяя строкам занимать несколько строк, включая дословные NEWLINE, TAB и любые другие специальные символы.
Синтаксис для тройных кавычек состоит из трех последовательных одинарных или двойных кавычек.
#!/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 в конце строки между «вверх». и закрытие тройных кавычек. Также обратите внимание, что 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
Unicode String
Нормальные строки в Python хранятся внутри как 8-битный ASCII, в то время как строки Unicode хранятся как 16-битный Unicode. Это позволяет использовать более разнообразный набор символов, в том числе специальные символы из большинства языков мира. Я ограничу свою обработку строк Unicode следующим:
#!/usr/bin/python print u'Hello, world!'
Когда приведенный выше код выполняется, он дает следующий результат —
Hello, world!
Как видите, строки Unicode используют префикс u, так же как строки raw используют префикс r.
Встроенные Строковые Методы
Python включает следующие встроенные методы для работы со строками:
Прописывает первую букву строки
Возвращает заполненную пробелами строку с исходной строкой, центрированной по столбцам ширины.
Подсчитывает, сколько раз встречается str в строке или в подстроке строки, если заданы начальный индекс beg и конечный индекс end.
Декодирует строку с использованием кодека, зарегистрированного для кодирования. по умолчанию используется строковое кодирование по умолчанию.
Возвращает закодированную строковую версию строки; в случае ошибки по умолчанию вызывается ошибка ValueError, если ошибки не указаны с помощью «игнорировать» или «заменить».
Определяет, заканчивается ли строка или подстрока строки (если задан начальный индекс begin и end index end) суффиксом; возвращает true, если так, и false в противном случае.
Расширяет вкладки в строке до нескольких пробелов; по умолчанию 8 пробелов на вкладку, если размер табуляции не указан.
Определите, встречается ли str в строке или в подстроке строки, если начальный индекс beg и конечный индекс end заданы, возвращает индекс, если он найден, и -1 в противном случае.
То же, что find (), но вызывает исключение, если str не найден.
Возвращает true, если строка содержит хотя бы 1 символ, а все символы буквенно-цифровые, в противном случае — false.
Возвращает true, если строка содержит хотя бы 1 символ, а все символы в алфавитном порядке и false в противном случае.
Возвращает true, если строка содержит только цифры, и false в противном случае.
Возвращает true, если строка содержит хотя бы 1 символ в регистре, а все символы в регистре строчные, в противном случае — false.
Возвращает true, если строка Unicode содержит только числовые символы, и false в противном случае.
Возвращает true, если строка содержит только пробельные символы, и false в противном случае.
Возвращает true, если строка правильно «titlecased» и false в противном случае.
Возвращает true, если строка содержит хотя бы один символ в регистре, и все символы в регистре прописные, в противном случае — false.
Объединяет (объединяет) строковые представления элементов последовательности seq в строку со строкой-разделителем.
Возвращает длину строки
Возвращает заполненную пробелами строку с исходной строкой, выровненной по левому краю, с общей шириной столбцов.
Преобразует все заглавные буквы в строке в строчные.
Удаляет все начальные пробелы в строке.
Возвращает таблицу перевода, которая будет использоваться в функции перевода.
Возвращает максимальный алфавитный символ из строки str.
Возвращает минимальный алфавитный символ из строки str.
Заменяет все вхождения old в string новыми или не более max вхождениями, если задано max.
То же, что find (), но поиск в строке назад.
То же, что index (), но поиск в строке назад.
Возвращает заполненную пробелами строку с исходной строкой, выровненной по правому краю на сумму столбцов ширины.
Удаляет все завершающие пробелы строки.
Разбивает строку в соответствии с разделителем str (пробел, если не указан) и возвращает список подстрок; разбить на самое большее количество подстрок, если дано.
Разбивает строку на все (или num) NEWLINEs и возвращает список каждой строки с удаленными NEWLINEs.
Определяет, начинается ли строка или подстрока строки (если задан начальный индекс, начало и конец индекса) с подстроки str; возвращает true, если так, и false в противном случае.
Выполняет как lstrip (), так и rstrip () для строки.
Инвертирует регистр для всех букв в строке.
Возвращает «stringcased» версию строки, то есть все слова начинаются с заглавной буквы, а остальные строчные.
Переводит строку в соответствии с таблицей перевода str (256 символов), удаляя их из строки del.
Преобразует строчные буквы в строке в прописные.
Возвращает исходную строку, заполненную нулями слева, до общей ширины символов; предназначен для чисел, zfill () сохраняет любой заданный знак (кроме одного нуля).
Возвращает true, если строка Unicode содержит только десятичные символы, и false в противном случае.