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 = '')
Задачи для самостоятельного решения
-
Подсчитать количество цифр в тексте, введенном пользователем.
-
Подсчитать количество заглавных и количество строчных латинских букв в тексте, введенном пользователем.
-
Удалить из введенной пользователем строки все пробелы.
-
Вывести первое слово из текста, введенного пользователем.
-
Пользователь вводит строку, в которой, как минимум, два символа z. Удалить из строки первое и последнее вхождение символа z, а также все символы между ними.
-
Пользователь вводит строку, в которой, как минимум, два символа z. Развернуть в обратном порядке все символы, которые находятся между первым и последним символом z.
-
Дана строка: s = 'ну3жн6о 9уд3ал@ит!ь 3ка$жд#ый% т&ре^ти*й (си)мв<ол> с3тр6ок9и'
Нужно удалить из нее каждый третий символ.