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-символ; в строках как в одинарных, так и в двойных кавычках.
Обозначение обратной косой черты | Шестнадцатеричный символ | Описание |
---|---|---|
\ а | 0x07 | Звонок или тревога |
\ b | 0x08 | Backspace |
\ cx | Control-x | |
\ Cx | Control-x | |
\ e | 0x1b | Побег |
\ f | 0x0c | Formfeed |
\ M- \ Cx | Мета-Control-x | |
\ п | 0x0a | Новая линия |
\ nnn | Восьмеричная запись, где n находится в диапазоне 0,7 | |
\р | 0x0d | Возврат каретки |
\ s | 0x20 | Космос |
\ т | 0x09 | Вкладка |
\ v | 0x0b | Вертикальная табуляция |
\Икс | Символ x | |
\ xnn | Шестнадцатеричное представление, где n находится в диапазоне 0,9, af или AF. |
Специальные строковые операторы
Предположим строковую переменную a содержит 'Hello' и переменную b держит Python, тогда -
Оператор | Описание | пример |
---|---|---|
+ | Конкатенация - добавляет значения по обе стороны от оператора. | a + b даст HelloPython |
* | Повторение - создает новые строки, объединяя несколько копий одной и той же строки. | a * 2 передаст -HelloHello |
[] | Slice - дает символ из заданного индекса | a [1] даст e |
[:] | Range Slice - дает символы из заданного диапазона | a [1: 4] даст ell |
в | Членство - возвращает истину, если в данной строке существует символ. | H в a даст 1 |
не в | Членство - возвращает истину, если символ не существует в данной строке. | M не в a даст 1 |
r / R | Необработанная строка - подавляет фактическое значение escape-символов. Синтаксис необработанных строк точно такой же, как и для обычных строк, за исключением оператора необработанной строки, буквы «r», которая стоит перед кавычками. Буква «r» может быть в нижнем (r) или верхнем регистре (R) и должна быть помещена непосредственно перед первой кавычкой. | print r '\ n' печатает \ n и печатает R '\ n'печатает \ n |
% | Формат - выполняет форматирование строки | См. Следующий раздел |
Оператор форматирования строки
Одна из самых крутых функций Python - оператор строкового формата%. Этот оператор уникален для строк и компенсирует набор функций из семейства printf () языка C. Ниже приводится простой пример -
#!/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 () до форматирования |
%я | знаковое десятичное целое число |
% d | знаковое десятичное целое число |
% u | беззнаковое десятичное целое число |
% o | восьмеричное целое число |
%Икс | шестнадцатеричное целое число (строчные буквы) |
%ИКС | шестнадцатеричное целое число (заглавные буквы) |
% e | экспоненциальная запись (со строчной буквой "е") |
% E | экспоненциальная запись (с заглавными буквами 'E') |
% f | вещественное число с плавающей запятой |
%г | короче из% f и% e |
%Г | короче из% f и% E |
Другие поддерживаемые символы и функции перечислены в следующей таблице -
Условное обозначение | Функциональность |
---|---|
* | аргумент определяет ширину или точность |
- | левое выравнивание |
+ | показать знак |
<sp> | оставьте пробел перед положительным числом |
# | добавить восьмеричный начальный ноль («0») или шестнадцатеричный начальный «0x» или «0X», в зависимости от того, использовались ли «x» или «X». |
0 | прокладка слева с нулями (вместо пробелов) |
% | '%%' оставляет вам единственный буквальный '%' |
(var) | переменная сопоставления (аргументы словаря) |
мин | m - минимальная общая ширина, а n - количество цифр, отображаемых после десятичной точки (если применимо). |
Тройные цитаты
На помощь приходят тройные кавычки Python, позволяющие строкам занимать несколько строк, включая дословные NEWLINE, TAB и любые другие специальные символы.
Синтаксис тройных кавычек состоит из трех последовательных single or double цитаты.
#!/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
Строка Юникода
Обычные строки в Python хранятся внутри как 8-битный ASCII, а строки Unicode хранятся как 16-битный Unicode. Это позволяет использовать более разнообразный набор символов, включая специальные символы из большинства языков мира. Я ограничу свою обработку строк Unicode следующим:
#!/usr/bin/python
print u'Hello, world!'
Когда приведенный выше код выполняется, он дает следующий результат:
Hello, world!
Как видите, строки Unicode используют префикс u, так же как необработанные строки используют префикс r.
Встроенные строковые методы
Python включает следующие встроенные методы для управления строками:
Sr.No. | Методы с описанием |
---|---|
1 | капитализировать () Делает первую букву строки заглавной |
2 | центр (ширина, fillchar) Возвращает строку, заполненную пробелами, с исходной строкой, центрированной по столбцам ширины. |
3 | count (str, begin = 0, end = len (строка)) Подсчитывает, сколько раз str встречается в строке или в подстроке строки, если заданы начальный индекс begin и конечный конец индекса. |
4 | декодировать (кодировка = 'UTF-8', ошибки = 'строгий') Декодирует строку, используя кодек, зарегистрированный для кодирования. кодировка по умолчанию - строковая кодировка по умолчанию. |
5 | кодировать (кодировка = 'UTF-8', ошибки = 'строгий') Возвращает закодированную строковую версию строки; при ошибке по умолчанию возникает ошибка ValueError, если ошибка не указана с помощью «игнорировать» или «заменить». |
6 | заканчивается (суффикс, начало = 0, конец = лен (строка)) Определяет, заканчивается ли строка или подстрока строки (если даны начало начального индекса и конечный конец индекса) суффиксом; возвращает true, если это так, и false в противном случае. |
7 | expandtabs (tabsize = 8) Расширяет табуляцию в строке до нескольких пробелов; по умолчанию 8 пробелов на вкладку, если размер табуляции не указан. |
8 | найти (str, begin = 0 end = len (строка)) Определите, встречается ли str в строке или в подстроке строки, если заданы начальный индекс begin и конечный конец индекса, возвращает индекс, если он найден, и -1 в противном случае. |
9 | index (str, begin = 0, end = len (строка)) То же, что и find (), но вызывает исключение, если str не найдена. |
10 | isalnum () Возвращает true, если строка содержит хотя бы 1 символ, и все символы являются буквенно-цифровыми, и false в противном случае. |
11 | isalpha () Возвращает true, если строка содержит хотя бы 1 символ и все символы буквенные, и false в противном случае. |
12 | isdigit () Возвращает true, если строка содержит только цифры, и false в противном случае. |
13 | islower () Возвращает истину, если строка содержит хотя бы один регистр, а все символы в регистре строчные, и ложь в противном случае. |
14 | isnumeric () Возвращает true, если строка Unicode содержит только числовые символы, и false в противном случае. |
15 | isspace () Возвращает true, если строка содержит только символы пробела, и false в противном случае. |
16 | istitle () Возвращает истину, если строка правильно "заглавная", и ложь в противном случае. |
17 | isupper () Возвращает true, если в строке есть хотя бы один регистр, а все символы в регистре - в верхнем регистре, и false в противном случае. |
18 | присоединиться (seq) Объединяет (объединяет) строковые представления элементов в последовательности seq в строку с разделителем string. |
19 | len (строка) Возвращает длину строки |
20 | ljust (ширина [, fillchar]) Возвращает строку, заполненную пробелами, при этом исходная строка выровнена по левому краю до общей ширины столбцов. |
21 год | нижний () Преобразует все прописные буквы в строке в строчные. |
22 | lstrip () Удаляет все ведущие пробелы в строке. |
23 | макетранс () Возвращает таблицу перевода, которая будет использоваться в функции перевода. |
24 | макс (str) Возвращает максимальный алфавитный символ из строки str. |
25 | мин (ул) Возвращает минимальный алфавитный символ из строки str. |
26 | replace (old, new [, max]) Заменяет все вхождения old в строке новыми или не более чем max, если задано max. |
27 | rfind (str, begin = 0, end = len (строка)) То же, что и find (), но поиск по строке в обратном направлении. |
28 | rindex (str, begin = 0, end = len (строка)) То же, что index (), но поиск по строке в обратном направлении. |
29 | rjust (ширина; [, fillchar]) Возвращает строку, заполненную пробелами, при этом исходная строка выровнена по правому краю до общей ширины столбцов. |
30 | rstrip () Удаляет все завершающие пробелы в строке. |
31 год | split (str = "", num = string.count (str)) Разбивает строку в соответствии с разделителем str (пробел, если он не указан) и возвращает список подстрок; если задано, разделить не более чем на количество подстрок. |
32 | splitlines (num = string.count ('\ n')) Разбивает строку на все (или количество) NEWLINE и возвращает список каждой строки с удаленными NEWLINE. |
33 | начинается с (str, begin = 0, end = len (строка)) Определяет, начинается ли строка или подстрока строки (если заданы начальный индекс begin и конечный конец индекса) с подстроки str; возвращает true, если это так, и false в противном случае. |
34 | полоса ([символы]) Выполняет как lstrip (), так и rstrip () для строки. |
35 год | swapcase () Инвертирует регистр всех букв в строке. |
36 | заглавие() Возвращает "заглавную" версию строки, то есть все слова начинаются с верхнего регистра, а остальные - с нижнего. |
37 | перевести (таблица, deletechars = "") Переводит строку в соответствии с таблицей перевода str (256 символов), удаляя символы из строки del. |
38 | верхний () Преобразует строчные буквы в прописные. |
39 | zfill (ширина) Возвращает исходную строку с заполненными слева нулями до общей ширины символов; предназначенная для чисел, zfill () сохраняет любой заданный знак (минус один ноль). |
40 | isdecimal () Возвращает true, если строка Unicode содержит только десятичные символы, и false в противном случае. |