- Функции обрабатывающие регистр символов в строке
- Связанные темы
- Строки. Функции и методы строк
- Базовые операции
- Таблица «Функции и методы строк»
- Строки в Python и методы работы с ними
- Склеивание и разделение строк
- Форматирование строк в Python
- Поиск в строках
- Замена в строках
- Вывод каждого символа в строке
- Узнаем длину строки
- Преобразование строки в число
- Изменение регистра строк в Python
- Удаление лишних пробелов из строк
- Итог
Функции обрабатывающие регистр символов в строке
Функция capitalize() возвращает копию строки с первым символом в верхнем регистре, а другие символы в нижнем регистре.
# Функция str.capitalize() # Ко вниманию принимаются только буквы s1 = 'abcdef ghi' s2 = str.capitalize(s1) # s2 = 'Abcdef ghi' s1 = 't' s2 = str.capitalize(s1) # s2 = 'T' s1 = '234' s2 = str.capitalize(s1) # s2 = '234' s1 = 'ABCDEF GHI' s2 = str.capitalize(s1) # s2 = 'Abcdef ghi' # Учет кирилличной азбуки s1 = 'байт!' s2 = str.capitalize(s1) # s2 = '\xc1\xe0\xe9\xf2!'
2. Функция str.casefold() . Вернуть свернутую копию строки
Функция str.casefold() возвращает свернутую копию строки. Понятие «свернутая копия» строки означает, что в такой копии удалены все отличия регистра символов в строке.
Особенность «свернутой» копии строки состоит в том, что функция lower() не может быть применена к некоторым символам, а функция casefold() может. Примером такого символа есть немецкий символ ‘ß’, который в функции casefold() заменяется на символы ss в отличие от функции lower() .
Функция введена в Python начиная из версии 3.3.
# Функция casefold() - возвращает свернутую копию строки # Использование со строками, содержащими символы верхнего и нижнего регистров s1 = 'Abcdef Ghi' s2 = str.casefold(s1) # s2 = 'abcdef ghi' s3 = s1.casefold() # s3 = 'abcdef ghi' # использование со строками, содержащими символы верхнего регистра s4 = 'ABCDEF SS' s5 = s4.casefold() # s5 = 'abcdef ss'
3. Функция str.lower() . Преобразование регистра символов
Функция str.lower() преобразовывает символы в нижний регистр.
# Функция str.lower() s1 = 'ABCD' s2 = s1.lower() # s2 = 'abcd' s2 = 'Hello World!'.lower() # s2 = 'hello world!'
4. Функция str.swapcase() . Вернуть копию строки с преобразованием строчных символов в заглавные и наоборот
Функция str.swapcase() возвращает копию строки с заглавными буквами, преобразованными в строчные и, наоборот, строчными преобразованными в заглавные. Общая форма вызова функции следующая:
- s1 – исходная строка, которую нужно преобразовать;
- s2 – результирующая строка в которой все заглавные символы преобразованы в строчные, а все строчные преобразованы в заглавные.
Для данной функции нельзя утверждать, что нижеследующее выражение
# Функция str.swapcase() s1 = 'Abcd' s2 = s1.swapcase() # s2 = 'aBCD' s1 = 'a+5+BC+D' s2 = str.swapcase(s1) # s2 = 'A+5+bc+d' s2 = 'hELLO WORLD'.swapcase() # s2 = 'Hello world' # Для кириллицы s1 = 'вЕБ-САЙТ' s2 = s1.swapcase() # s2 = 'Веб-сайт'
5. Функция str.title() . Вернуть строку с заглавными буквами в словах
Функция str.title() возвращает строку, в которой все слова начинаются с заглавной буквы. Другие символы в этих словах есть строчные. Общая форма использования функции следующая:
- s1 – исходная строка;
- s2 – результирующая строка, в которой реализуется корректировка символов, которые есть началами слов.
Функция имеет одну особенность. Символ ‘\» апострофа образовывает границу слова. В некоторых случаях это нежелательно. Во избежание этого недостатка нужно использовать регулярные выражения.
# Функция str.title s1 = 'hello world!' # s2 = 'Hello World!' s2 = s1.title() s1 = 'HELLO WORLD!' s2 = str.title(s1) # s2 = 'Hello World!' # Отдельный случай с символом апострофа '\'' s1 = "I'm happy!" s2 = s1.swapcase() # s2 = 'i'M HAPPY!'
6. Функция str.upper() . Конвертировать символы строки в верхний регистр
Функция str.upper() позволяет получить копию строки в которой все символы находятся в верхнем регистре. Согласно документации Python общая форма функции следующая:
- s1 – исходная строка;
- s2 – результирующая строка-копия, в которой символы нижнего регистра строки s1 заменены на символы верхнего регистра.
Конвертирование символов осуществляется только для символов имеющих верхний регистр. Это символы, которые включены в следующие категории:
# Функция str.upper() s1 = 'abcdef' s2 = s1.upper() # s2 = 'ABCDEF' s1 = '' # пустая строка s2 = str.upper(s1) # s2 = '' s1 = '5+6=11' s2 = s1.upper() # s2 = '5+6=11' s2 = 'aBc deFg'.upper() # s2 = 'ABC DEFG'
Связанные темы
Строки. Функции и методы строк
Итак, о работе со строками мы немного поговорили, теперь поговорим о функциях и методах строк.
Я постарался собрать здесь все строковые методы и функции, но если я что-то забыл — поправляйте.
Базовые операции
При вызове методов необходимо помнить, что строки в Python относятся к категории неизменяемых последовательностей, то есть все функции и методы могут лишь создавать новую строку.
: Поэтому все строковые методы возвращают новую строку, которую потом следует присвоить переменной.
Таблица «Функции и методы строк»
Функция или метод | Назначение |
---|---|
S = ‘str’; S = «str»; S = »’str»’; S = «»»str»»» | Литералы строк |
S = «s\np\ta\nbbb» | Экранированные последовательности |
S = r»C:\temp\new» | Неформатированные строки (подавляют экранирование) |
S = b»byte» | Строка байтов |
S1 + S2 | Конкатенация (сложение строк) |
S1 * 3 | Повторение строки |
S[i] | Обращение по индексу |
S[i:j:step] | Извлечение среза |
len(S) | Длина строки |
S.find(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или -1 |
S.rfind(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или -1 |
S.index(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError |
S.rindex(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError |
S.replace(шаблон, замена[, maxcount]) | Замена шаблона на замену. maxcount ограничивает количество замен |
S.split(символ) | Разбиение строки по разделителю |
S.isdigit() | Состоит ли строка из цифр |
S.isalpha() | Состоит ли строка из букв |
S.isalnum() | Состоит ли строка из цифр или букв |
S.islower() | Состоит ли строка из символов в нижнем регистре |
S.isupper() | Состоит ли строка из символов в верхнем регистре |
S.isspace() | Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы (‘\f’), «новая строка» (‘\n’), «перевод каретки» (‘\r’), «горизонтальная табуляция» (‘\t’) и «вертикальная табуляция» (‘\v’)) |
S.istitle() | Начинаются ли слова в строке с заглавной буквы |
S.upper() | Преобразование строки к верхнему регистру |
S.lower() | Преобразование строки к нижнему регистру |
S.startswith(str) | Начинается ли строка S с шаблона str |
S.endswith(str) | Заканчивается ли строка S шаблоном str |
S.join(список) | Сборка строки из списка с разделителем S |
ord(символ) | Символ в его код ASCII |
chr(число) | Код ASCII в символ |
S.capitalize() | Переводит первый символ строки в верхний регистр, а все остальные в нижний |
S.center(width, [fill]) | Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию) |
S.count(str, [start],[end]) | Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию) |
S.expandtabs([tabsize]) | Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам |
S.lstrip([chars]) | Удаление пробельных символов в начале строки |
S.rstrip([chars]) | Удаление пробельных символов в конце строки |
S.strip([chars]) | Удаление пробельных символов в начале и в конце строки |
S.partition(шаблон) | Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки |
S.rpartition(sep) | Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку |
S.swapcase() | Переводит символы нижнего регистра в верхний, а верхнего – в нижний |
S.title() | Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний |
S.zfill(width) | Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями |
S.ljust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar |
S.rjust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar |
S.format(*args, **kwargs) | Форматирование строки |
Для вставки кода на Python в комментарий заключайте его в теги
Строки в Python и методы работы с ними
В одной из прошлых статей я разбирал строки в JavaScript. Теперь пришло время поговорить о строках в языке программирования Python.
Начнем с теории. Строка – это последовательность символов произвольной длины. Также строки являются объектами класса str, и если мы захотим получить не строку, а число, то можем использовать функцию приведения.
Склеивание и разделение строк
Самый простой способ склеить строки в Python – это сложить их с помощью знака «+». Рассмотрим на примере:
str = "a"+"b" print(str) # Выведет "ab"
Но такой способ не всегда будет нам подходить. Рассмотрим метод join():
str = ["a", "b", "c"] print("".join(str)) # Выведет "abc"
Перед .join() мы указываем разделитель строк, а в скобках сам их массив.
Для того чтобы разделить строки, используем обратный метод – split(). Тут в скобках указываем набор символов, по которым будет идти разделение, а перед методом не забываем указать имя строки, а после нее поставить точку. Рассмотрим на примере:
str = "a,b,c" print(str.split(",")) # Выведет ['a', 'b', 'c']
Существует и другой способ разделения строк, он называется срез. Срез str[x:y] позволит нам получить строку от символа x до y. При этом необязательно указывать оба параметра, ведь в таком случае срез произойдет от начала или до самого конца строки.
str = "Строки в Python и методы работы с ними" print(str[9:15]) # Выведет "Python"
str = "Строки в Python и методы работы с ними" print(str[:15]) # Выведет "Строки в Python"
str = "Строки в Python и методы работы с ними" print(str[18:]) # Выведет "методы работы с ними"
Также можно срезать каждый энный символ при помощи двойного двоеточия:
str = "123456789" print(str[::2]) # Выведет "13579"
Форматирование строк в Python
Для подстановки в строку любой переменной, которая может являться результатом работы основной части кода, нам понадобятся f-строки. Они появились в Python 3.6, поэтому я рекомендую использовать только свежие версии этого языка программирования. Рассмотрим на примере работу с f-строками:
num = 2*10 num2 = 100 str = f"Первое число: . Второе число: " print(str) # Выведет "Первое число: 20. Второе число: 100"
Поиск в строках
Если нам нужно найти набор символов в начале или в конце данной строки, то на помощь приходят два быстрых метода.
Первый метод – startswith(). Он позволяет искать набор символов в начале строки. Рассмотрим на примере:
str = "Строки в Python и методы работы с ними" print(str.startswith("Строки")) #Выведет True
Второй метод – endswith(). Он позволяет искать набор символов в конце строки. Рассмотрим на примере:
str = ". я разбирал строки в JavaScript" print(str.endswith("JavaScript")) #Выведет True
А если нам нужно найти набор символов в произвольном месте строки, то используем метод find(). Рассмотрим на примере:
str = "Строки в Python и методы работы с ними" print(str.find("Python")) #Выведет 9
В данном случае скрипт нашел набор символов в строке и вывел индекс начала его вхождения в ней.
str = "Строки в Python и методы работы с ними" print(str.find("JavaScript")) #Выведет -1
А в этом случае скрипт не нашел набор символов в строке и вывел «-1».
Замена в строках
Для замены одного набора символов на другой в строке используют метод replace(). Рассмотрим данный метод на примере:
str = "Строки в Python и методы работы с ними" print(str.replace("Python", "JavaScript")) #Выведет "JavaScript"
Вывод каждого символа в строке
Если нам нужно получить и обработать каждый символ в строке отдельно, то мы можем использовать цикл for. Рассмотрим на примере:
str = "123" for i in str: print(i) #Выведет "1" "2" "3"
Узнаем длину строки
Для того чтобы получить длину строки, используем метод len():
str = "123" print(len(str)) # Выведет 3
Преобразование строки в число
Если мы имеем строку, состоящую из набора цифр, то мы смело можем преобразовать ее в число, используя функцию приведения int(). Рассмотрим на примере:
str = "123" print(int(str)) # Выведет 123
Изменение регистра строк в Python
Для того чтобы все буквы в строке были заглавными, используем метод upper():
str = "Строки в Python и методы работы с ними" print(str.upper()) # Выведет "СТРОКИ В PYTHON И МЕТОДЫ РАБОТЫ С НИМИ"
И метод lower() для строчных букв:
str = "СТРОКИ В PYTHON И МЕТОДЫ РАБОТЫ С НИМИ" print(str.upper()) # Выведет "строки в python и методы работы с ними"
Чтобы первая буква в строке стала заглавной, следует использовать метод capitalize():
str = "строки в python и методы работы с ними" print(str.capitalize()) # Выведет "Строки в python и методы работы с ними"
Удаление лишних пробелов из строк
Метод strip() удаляет пробельные символы в начале и в конце строки. lstrip() и rstrip() делают то же самое, но в определенных местах: первый метод в начале строки, а второй – в ее конце.
Итог
Мы разобрали основные методы работы со строками в Python. Предлагайте идеи для статей и удачи в ваших начинаниях!