Любой кто работает с 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'