Строки в Python
14.02.2018
Теги: Python • ТипыДанных
Строки — упорядоченные последовательности символов, используемые для хранения и представления текстовой информации, поэтому с помощью строк можно работать со всем, что может быть представлено в текстовой форме.
Существует несколько литералов строк:
>>> spam = "That is Alice's cat." >>> spam "That is Alice's cat." >>> spam = 'That is Alice\'s cat.' >>> spam "That is Alice's cat."
Строки в апострофах и в кавычках — одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование.
Экранированные последовательности позволяют вставить символы, которые сложно ввести с клавиатуры.
\n
— Перевод строки\a
— Звонок\f
— Перевод страницы\r
— Возврат каретки\t
— Горизонтальная табуляция\v
— Вертикальная табуляция
Экранированные символы \'
и \"
позволяют вставлять в строку соответственно апострофы и кавычку. Если перед открывающей кавычкой стоит символ «r» (в любом регистре), то механизм экранирования отключается:
>>> file = r'C:\file.txt' >>> file 'C:\\file.txt'
Строки в тройных апострофах или кавычках можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трех кавычек подряд.
>>> spam = """ ... Lorem ipsum dolor sit amet, consectetur ... adipiscing elit, sed do eiusmod tempor ... incididunt ut labore et dolore magna aliqua. ... """ >>> spam '[red]\n[/red]Lorem ipsum dolor sit amet, consectetur[red]\n[/red]adipiscing elit, sed do eiusmod tempor[red]\n[/red]incididunt ut labore et dolore magna aliqua.[red]\n[/red]'
Функции и методы строк
Конкатенация и репликация
>>> spam = 'Hello' + ' ' + 'world!' >>> spam 'Hello world!'
>>> 'hello' * 3 'hellohellohello'
Доступ по индексу и срезы
>>> spam = 'Hello world!' >>> spam[0] 'H' >>> spam[4] 'o' >>> spam[-1] '!' >>> spam[0:5] 'Hello' >>> spam[6:] 'world!' >>> spam[:] 'Hello world!'
Использование операторов in
и not in
>>> 'Hello' in 'Hello world!' True >>> 'cat' not in 'cats and dogs' False
Методы upper()
, lower()
, isupper()
, islower()
>>> spam = 'Hello world' >>> spam.upper() 'HELLO WORLD' >>> spam.lower() 'hello world' >>> upper = spam.upper() >>> upper 'HELLO WORLD' >>> upper.isupper() True >>> '12345'.islower() False
Методы isalpha()
, isalnum()
, isdecimal()
, isspace()
, istitle()
>>> 'abcde'.isalpha() True >>> 'abc123'.isalnum() True >>> '12345'.isdecimal() True >>> ' '.isspace() True >>> '\t\n'.isspace() True >>> 'This Is Title Case'.istitle() True
Методы startswith()
и endswith()
возвращают True
, если строки, для которых они вызываются, соответственно начинаются или заканчиваются строкой, переданной методу.
>>> spam = 'Hello world!' >>> spam.startswith('Hello') True >>> spam.endswith('!') True
Методы join()
и split()
>>> ','.join(['cat', 'rat', 'dog']) 'cat,rat,dog' >>> 'My name is Simon'.split() ['My', 'name', 'is', 'Simon'] >>> 'cat,rat,dog'.split(',') ['cat', 'rat', 'dog']
Удаление пробелов с помощью методов strip()
, lstrip()
, rstrip()
>>> spam = ' Hello world! ' >>> spam.strip() 'Hello world!' >>> spam.lstrip() 'Hello world! ' >>> spam.rstrip() ' Hello world!'
>>> spam = 'Hello world!' >>> spam.strip('H!') 'ello world'
Копирование строки в буфер обмена и вставка из буфера обмена
>>> import pyperclip >>> pyperclip.copy('Hello world!') >>> pyperclip.paste() 'Hello world!'
Поиск: Python • Строка • Типы данных