Учебники

Python — Струны

Строки являются одними из самых популярных типов в Python. Мы можем создать их, просто заключив символы в кавычки. Python обрабатывает одинарные кавычки так же, как двойные. Создание строк так же просто, как присвоение значения переменной. Например —

var1 = 'Hello World!'
var2 = "Python Programming"

Доступ к значениям в строках

Python не поддерживает тип символов; они обрабатываются как строки длины один, таким образом также считаются подстрокой.

Чтобы получить доступ к подстрокам, используйте квадратные скобки для нарезки вместе с индексом или индексами, чтобы получить вашу подстроку. Например —

Live Demo

#!/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

Обновление строк

Вы можете «обновить» существующую строку путем (пере) присвоения переменной другой строке. Новое значение может быть связано с его предыдущим значением или с совершенно другой строкой. Например —

Live Demo

#!/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 (). Ниже приведен простой пример —

Live Demo

#!/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 и любые другие специальные символы.

Синтаксис для тройных кавычек состоит из трех последовательных одинарных или двойных кавычек.

Live Demo

#!/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.

Необработанные строки вообще не обрабатывают обратную косую черту как специальный символ. Каждый символ, который вы помещаете в необработанную строку, остается таким же, каким вы его написали —

Live Demo

#!/usr/bin/python

print 'C:\\nowhere'

Когда приведенный выше код выполняется, он дает следующий результат —

C:\nowhere

Теперь давайте воспользуемся необработанной строкой. Мы бы выразили выражение в r’expression ‘ следующим образом:

Live Demo

#!/usr/bin/python

print r'C:\\nowhere'

Когда приведенный выше код выполняется, он дает следующий результат —

C:\\nowhere

Unicode String

Нормальные строки в Python хранятся внутри как 8-битный ASCII, в то время как строки Unicode хранятся как 16-битный Unicode. Это позволяет использовать более разнообразный набор символов, в том числе специальные символы из большинства языков мира. Я ограничу свою обработку строк Unicode следующим:

Live Demo

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