Работа со строками в Python

Любой кто работает с Python, рано или поздно сталкивается с необходимостью работы со строками. Задачи могут быть совершенно разными и решить их можно по разному, но зачем изобретать колесо, когда в стандартной библиотеке Python уже есть масса полезных инструментов.

Эта статья начинает цикл постов по работе с строкой в Python.

Базовые операции со строками.

Сложение строк

name = 'Иван '
surname = 'Иванов'

print(name + surname) 'Иван Иванов'

Заметьте что сложение чисел в формате string не производит над ними математической операции:

num = '5' + '5'
print(num) '55'

Так же следует помнить что сложение строк с числами формата int приведет к ошибке TypeError.

Умножение строки

var = 'Hello'

print(var * 5 ) 'HelloHelloHelloHelloHello'

Тут тоже без сюрпризов. И комментариев не требуется

Как узнать длину строки?
В этом нам поможет встроенная функция len()

len('Alex')
4

string = 'Def Python' print(len(string))
10

Доступ к элементу строки по её индексу

Вот мы и подобрались к самому интересному. Наиболее частой задачей в работе со строкой в Python является разбор строки. Основой разбора строки является как раз возможность получения элемента строки по ее индексу:

string = 'Def Python'
print(string[0])
print(string[2])
print(string[5])
'D'
'f'
'y'

Заметьте, что первый элемент строки имеет индекс [0].

Так же получить элемент строки по отрицательному индексу, при этом отсчет пойдет с конца строки:

string = 'Def Python'
print(string[-1])
print(string[-3])
'n'
'h'

Так же можно получить не один отдельный элемент строки а целый срез:

string = 'Def Python'
print(string[0:2])
print(string[4:10])
'Def'
'Python'

Как видно из примера первый аргумент указывает на начало среза, а второй на окончание

Если первый аргумент не задан — то по умолчанию он равен 0, т.е. началу строки. Так же если второй аргумент не задан — он по умолчанию равен длине стоки.

Проапгрейдем наш предидущий пример.

string = 'Def Python'
print(string[:2])
print(string[4:])
'Def'
'Python'

Так же имеется и третий аргумент. Он задает шаг, с которым будет сделан срез.

string = 'Def Python'
print(string[0:10:2])
print(string[6:3:-1])
'DfPto'
'tyP'

Как видно из примера, так же может быть отрицательным, что означает что отсчет пойдет с конца строки.

Так же может можно использовать с первыми двумя аргументами по умолчанию:

string = 'Def Python'
print(string[::3])
'D tn'

И вот наш первый приемчик:

Как в Python вывести строку задом наперед?

string = 'Def Python'
print(string[::-1])
'nohtyP feD'
EnglishRussianUkrainian