Задачи

Python. Строки

Строка - это объект, содержащий последователность символов, предназначенный для представления текста. Мы уже неоднократно использовали строки для вывода текста в наших примерах, в которых они объявлялись заключением в апострофы. Также строки можно задавать заключением текста в двойные кавычки. Если строка задана апострофами, то внутри можно использовать кавычки и, наоборот, если строка задана кавычками, то внутри можно использовать апострофы.

Есть также возможность задать многострочные тексты, которые в этом случае заключаются в тройные апострофы или кавычки и также являются объетом типа строка.

Есть специальный символ \ (backslash), который предназначен для операции экранирования - указания последовательности для специальных управляющих символов:

\n - перевод строки

\t - табуляция

\f - перевод страницы

\\ - сам символ \

Каждый символ в строке имеет порядковый номер - индекс, который для первого символа равен 0. Любой символ строки можно получить по его индексу, например, у нас задана строка:

s = 'Hello, World!'

Тогда s[0] - это символ 'H', а s[1] - 'e' и т.д. Возможен отрицательный индекс, в этом случае отсчет идет от конца строки в обратную сторону. Например, s[-2] это 'd', т.е. -1, индекс последнего символа

В Python можно получить доступ к подстроке через, так называемый, срез, в котором указывается начальный и конечный индексы подстроки, при этом символ с конечным индексом в срез не входит. Например, для вышеуказанной строки срез s[2:5] это подстрока 'llo'.

В срезах, по-умолчанию начальный индекс равен 0, а конечный индекс - длине строки. Например, s[1:] - это строка за исключением первого символа, а s[:2] - первые два символа.

В срезах третьим параметром можно указывать с каким шагом его извлекать, например, для нашей строки срез s[0:5:2] - 'Hlo'. Шаг может быть отрицательным, например, срез s[::-1] - это строка '!dlroW ,olleH', т.е. с символами в обратном порядке.

Для строк есть функции конкатенации (слияния) и умножения:

s = 'Hello' + ', World!'   # 'Hello, World!'
s = 'Hello' * 3            # 'HelloHelloHello'

К строкам применима функция len(s), которая возаращает количество символов в строке.

Некотрые полезные функции строк приведены в таблице:

Функция Описание
s.find(substr, [start],[end]) Возвращает номер первого вхождения подстроки substr или -1, если она не найдена
s.rfind(substr, [start],[end]) Возвращает номер последнего вхождения подстроки substr или -1, если она не найдена
s.replace(substr, repstr) Возвращает строку, в которой подстрока substr заменена на repstr
s.split(symbol) Разбивает строку на части по разделителю symbol
s.isdigit() Возвращает True, если строка состоит из цифр
s.isalpha() Возвращает True, если строка состоит из букв
s.islower() Возвращает True, если строка состоит из букв в нижнем регистре
s.isupper() Возвращает True, если строка состоит из букв в верхнем регистре
s.upper() Возвращает строку, в которой символы в нижнем регистре заменены на символы в верхнем регистре
s.lower() Возвращает строку, в которой символы в верхнем регистре заменены на символы в нижнем регистре
s.strip([chars]) Возвращает строку, в которой удалены пробелы в начале и в конце строки. Вместо пробелов можно указать последовательность символов, которую надо удалить

Для строк возможна операция проверки вхождения in. Например, проверить символ на принадлежность цифрам можно таким способом:

s = '0'
if s in '01234567890':
    print('Это цифра')

А в цикле возможен перебор символов строки следующим образом:

s = 'Hello, World!'
for symbol in s:
    print(symbol, end = '')
 

Задачи для самостоятельного решения