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 в противном случае.