Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Строки в Python: Создание, доступ, форматирование и методы манипуляции

Создание строк

Строки — одни из самых популярных типов в Python. Создаются заключением символов в кавычки. Одинарные и двойные кавычки эквивалентны. Создание — простое присваивание:

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

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

В Python нет отдельного типа символа; символ — это строка длины 1, то есть подстрока.

Для доступа к подстрокам используются квадратные скобки со срезами (slicing) и индексами. Индексация начинается с 0 в начале строки и -1 в конце.

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-символы

Таблица escape-последовательностей (обратный слеш) для непечатных символов. Работают в одинарных и двойных кавычках.

Обратный слешHexОписание
\a0x07Звонок/оповещение
\b0x08Backspace
\cx Control-x
\C-x Control-x
\e0x1bEscape
\f0x0cFormfeed (перевод страницы)
\M-\C-x Meta-Control-x
\n0x0aНовая строка (Newline)
\nnn Восьмеричная нотация (n в диапазоне 0-7)
\r0x0dВозврат каретки (Carriage return)
\s0x20Пробел
\t0x09Табуляция (Tab)
\v0x0bВертикальная табуляция
\x Символ x
\xnn Шестнадцатеричная нотация (n: 0-9, a-f, A-F)

Специальные операторы строк

Пусть a = 'Hello', b = 'Python':

ОператорОписаниеПример
+Конкатенация — объединение строкa + b → HelloPython
*Повторение — создаёт новые строки, повторяя исходнуюa*2 → HelloHello
[]Срез — символ по индексуa[1] → e
[:]Диапазон среза — подстрока по диапазонуa[1:4] → ell
inПринадлежность — true, если символ есть в строкеH in a → 1
not inПринадлежность — true, если символа нет в строкеM not in a → 1
r/RСырая строка (raw) — подавляет интерпретацию escape. Синтаксис: r'...' или R'...'print r'\n' выводит \n
%Форматирование строкисм. ниже

Оператор форматирования строк %

Одна из лучших возможностей Python — оператор форматирования %. Уникален для строк, заменяет семейство printf() из C. Пример:

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!

Полный набор символов форматирования:

СимволПреобразование
%cсимвол
%sстрока через str()
%iцелое со знаком
%dцелое со знаком
%uбеззнаковое целое
%oвосьмеричное целое
%xшестнадцатеричное (строчные)
%Xшестнадцатеричное (ЗАГЛАВНЫЕ)
%eэкспоненциальная нотация (строчная e)
%Eэкспоненциальная нотация (ЗАГЛАВНАЯ E)
%fвещественное число с плавающей точкой
%gкороткое из %f и %e
%Gкороткое из %f и %E

Дополнительные символы и функциональность:

СимволФункциональность
*аргумент задаёт ширину или точность
-выравнивание по левому краю
+отображать знак
<sp>пробел перед положительным числом
#добавить ведущий 0 (восьмеричное) или 0x/0X (шестнадцатеричное)
0заполнение слева нулями (вместо пробелов)
%'%%' даёт один литерал '%'
(var)переменная отображения (аргументы-словарь)
m.nm — мин. ширина, n — знаков после запятой

Тройные кавычки

Тройные кавычки позволяют строкам занимать несколько строк, включая литеральные 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):

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.

Сырые строки (raw) не трактуют обратный слеш как спецсимвол. Все символы остаются такими, как написаны:

Live Demo
#!/usr/bin/python
print 'C:\\nowhere'

Результат:

C:\nowhere

С raw-строкой:

Live Demo
#!/usr/bin/python
print r'C:\\nowhere'

Результат:

C:\\nowhere

Строки Unicode

Обычные строки хранятся как 8-битный ASCII, Unicode — как 16-битный. Это позволяет использовать расширенный набор символов, включая специальные символы большинства языков мира.

Live Demo
#!/usr/bin/python
print u'Hello, world!'

Результат:

Hello, world!

Unicode-строки используют префикс u, как raw — префикс r.

Встроенные методы строк

Python включает следующие методы для манипуляции строками:

№Метод и описание
1capitalize() — первая буква заглавная
2center(width, fillchar) — строка, центрированная в поле ширины width с заполнителем fillchar
3count(str, beg=0, end=len(string)) — сколько раз str встречается в строке или подстроке
4decode(encoding='UTF-8', errors='strict') — декодирование строки с кодеком
5encode(encoding='UTF-8', errors='strict') — кодирование строки; при ошибке ValueError, если errors не 'ignore' или 'replace'
6endswith(suffix, beg=0, end=len(string)) — заканчивается ли строка/подстрока суффиксом
7expandtabs(tabsize=8) — табы в пробелы (по умолчанию 8)
8find(str, beg=0, end=len(string)) — индекс первого вхождения str или -1
9index(str, beg=0, end=len(string)) — как find, но исключение, если не найдено
10isalnum() — true, если хотя бы 1 символ и все алфавитно-цифровые
11isalpha() — true, если хотя бы 1 символ и все алфавитные
12isdigit() — true, если только цифры
13islower() — true, если есть буквенные и все в нижнем регистре
14isnumeric() — true для unicode, если только числовые символы
15isspace() — true, если только пробельные символы
16istitle() — true, если строка в "title case" (каждое слово с заглавной)
17isupper() — true, если есть буквенные и все в верхнем регистре
18join(seq) — объединяет строковые представления элементов seq с разделителем-строкой
19len(string) — длина строки
20ljust(width[, fillchar]) — строка, выровненная влево в поле ширины width
21lower() — все заглавные в строчные
22lstrip() — удаляет ведущие пробелы
23maketrans() — таблица перевода для translate
24max(str) — максимальный алфавитный символ
25min(str) — минимальный алфавитный символ
26replace(old, new[, max]) — заменяет все вхождения old на new или до max раз
27rfind(str, beg=0, end=len(string)) — как find, но поиск с конца
28rindex(str, beg=0, end=len(string)) — как index, но с конца
29rjust(width[, fillchar]) — строка, выровненная вправо в поле ширины width
30rstrip() — удаляет завершающие пробелы
31split(str="", num=string.count(str)) — разбивает по разделителю str (пробел по умолчанию), возвращает список подстрок; не более num частей
32splitlines(num=string.count('\n')) — разбивает по NEWLINE, возвращает список строк без NEWLINE
33startswith(str, beg=0, end=len(string)) — начинается ли строка/подстрока с подстроки str
34strip([chars]) — lstrip() + rstrip()
35swapcase() — инвертирует регистр всех букв
36title() — "title case": каждое слово с заглавной, остальные строчные
37translate(table, deletechars="") — перевод по таблице (256 символов), удаление del-символов
38upper() — все строчные в заглавные
39zfill(width) — строка, дополненная слева нулями до ширины width; для чисел, знак сохраняется
40isdecimal() — true для unicode, если только десятичные символы

Python

  1. Строки в C#: основы, операции и продвинутые техники
  2. Мастерство операторов Python: Полное руководство
  3. Словари в Python: создание, манипуляции и продвинутые техники
  4. Освоение строковых операций в Python: replace, join, split, reverse, преобразование регистра
  5. Мастерство метода strip() в Python: подробное руководство и практические примеры
  6. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  7. Мастерство строк форматирования format() в Python: понятные примеры
  8. Python len(): практическое руководство по измерению длины объектов
  9. Мастерство метода String.find() в Python: синтаксис, примеры и альтернативы
  10. Освоение enumerate() в Python: циклы с индексами для списков, кортежей, строк и словарей