Поиск по сайту:

Введение в строковые функции в Python 3


Введение

Python имеет несколько встроенных функций, связанных со строковым типом данных. Эти функции позволяют нам легко изменять и манипулировать строками. Мы можем думать о функциях как о действиях, которые мы выполняем над элементами нашего кода. Встроенные функции — это те, которые определены на языке программирования Python и легко доступны для использования.

В этом руководстве мы рассмотрим несколько различных функций, которые можно использовать для работы со строками в Python 3.

Предпосылки

У вас должен быть установлен Python 3 и настроена среда программирования на вашем компьютере или сервере. Если у вас не настроена среда программирования, вы можете обратиться к руководствам по установке и настройке среды программирования на вашем сервере, подходящей для вашей операционной системы (Ubuntu, CentOS, Debian и т. д.).

Создание строк в верхнем и нижнем регистре

Функции str.upper() и str.lower() возвращают строку, в которой все буквы исходной строки преобразованы в буквы верхнего или нижнего регистра. Поскольку строки являются неизменяемыми типами данных, возвращаемая строка будет новой строкой. Любые символы в строке, которые не являются буквами, не будут изменены.

Давайте преобразуем строку Sammy Shark в верхний регистр:

Информация: Чтобы следовать примеру кода в этом руководстве, откройте интерактивную оболочку Python в вашей локальной системе, выполнив команду python3. Затем вы можете копировать, вставлять или редактировать примеры, добавляя их после приглашения >>>.

ss = "Sammy Shark"
print(ss.upper())
Output
SAMMY SHARK

Теперь давайте преобразуем строку в нижний регистр:

print(ss.lower())
Output
sammy shark

Функции str.upper() и str.lower() упрощают вычисление и сравнение строк, обеспечивая единообразие регистра. Таким образом, если пользователь пишет свое имя в нижнем регистре, мы все равно можем определить, находится ли его имя в нашей базе данных, сверив его, например, с версией в верхнем регистре.

Логические методы

В Python есть несколько строковых методов, которые будут оцениваться как логическое значение. Эти методы полезны, например, когда мы создаем формы для заполнения пользователями. Если мы запрашиваем почтовый индекс, мы будем принимать только числовую строку, но когда мы запрашиваем имя, мы хотим принимать только буквенную строку.

Существует ряд строковых методов, которые будут возвращать логические значения:

Method True if
str.isalnum() String consists of only alphanumeric characters (no symbols)
str.isalpha() String consists of only alphabetic characters (no symbols)
str.islower() String’s alphabetic characters are all lower case
str.isnumeric() String consists of only numeric characters
str.isspace() String consists of only whitespace characters
str.istitle() String is in title case
str.isupper() String’s alphabetic characters are all upper case

Давайте рассмотрим пару из них в действии:

number = "5"
letters = "abcdef"

print(number.isnumeric())
print(letters.isnumeric())
Output
True False

Использование метода str.isnumeric() для строки 5 возвращает значение True, а использование того же метода для строки abcdef возвращает значение False.

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

movie = "2001: A SAMMY ODYSSEY"
book = "A Thousand Splendid Sharks"
poem = "sammy lived in a pretty how town"

Теперь давайте попробуем логические методы, которые проверяют регистр:

print(movie.islower())
print(movie.isupper())
print(book.istitle())
print(book.isupper())
print(poem.istitle())
print(poem.islower())

Теперь мы можем запустить эти небольшие программы и получить следующий вывод:

Output of movie string
False True
Output of book string
True False
Output of poem string
False True

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

Логические строковые методы полезны, когда мы хотим проверить, соответствует ли что-то, что вводит пользователь, заданным параметрам.

Определение длины строки

Строковая функция len() возвращает количество символов в строке. Этот метод полезен, когда вам нужно, например, установить минимальную или максимальную длину пароля или урезать большие строки, чтобы они находились в определенных пределах для использования в качестве сокращений.

Чтобы продемонстрировать этот метод, мы найдем длину строки, состоящей из предложения:

open_source = "Sammy contributes to open source."
print(len(open_source))
Output
33

Мы установили переменную open_source равной строке Сэмми способствует открытому исходному коду, а затем передали эту переменную функции len(). с помощью len(open_source). Затем мы передали метод в метод print(), чтобы мы могли генерировать вывод на экран из нашей программы.

Имейте в виду, что любой символ, заключенный в одинарные или двойные кавычки, включая буквы, цифры, пробелы и символы, будет учитываться функцией len().

Методы join(), split() и replace()

Методы str.join(), str.split() и str.replace() — это несколько дополнительных способов манипулирования строками в Питон.

Метод str.join() объединяет две строки, но таким образом, что одна строка проходит через другую.

Создадим строку:

balloon = "Sammy has a balloon."

Теперь давайте воспользуемся методом str.join(), чтобы добавить пробел в эту строку, что мы можем сделать следующим образом:

" ".join(balloon)

Если мы распечатаем это:

print(" ".join(balloon))

Мы заметим, что в возвращаемой новой строке в первой строке добавлен пробел:

Output
S a m m y h a s a b a l l o o n .

Мы также можем использовать метод str.join(), чтобы вернуть строку, которая является противоположной исходной строке:

print("".join(reversed(balloon)))
Output
.noollab a sah ymmaS

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

Метод str.join() также полезен для объединения списка строк в новую единую строку.

Давайте создадим строку, разделенную запятыми, из списка строк:

print(",".join(["sharks", "crustaceans", "plankton"]))
Output
sharks,crustaceans,plankton

Если мы хотим добавить запятую и пробел между строковыми значениями в нашей новой строке, мы можем переписать наше выражение с пробелом после запятой: , .join([акулы, ракообразные, планктон ]).

Точно так же, как мы можем соединять строки вместе, мы также можем разделять строки. Для этого воспользуемся методом str.split():

print(balloon.split())
Output
['Sammy', 'has', 'a', 'balloon.']

Метод str.split() возвращает список строк, разделенных пробелом, если не указан другой параметр.

Мы также можем использовать str.split() для удаления определенных частей исходной строки. Например, удалим из строки букву a:

print(balloon.split("a"))
Output
['S', 'mmy h', 's ', ' b', 'lloon.']

Теперь буква a удалена, а строки разделены там, где раньше были все экземпляры буквы a, с сохранением пробелов.

Метод str.replace() может принимать исходную строку и возвращать обновленную строку с некоторой заменой.

Предположим, что воздушный шар, который был у Сэмми, потерян. Поскольку у Сэмми больше нет этого шара, мы изменим подстроку has из исходной строки balloon на had в новой строке. :

print(balloon.replace("has","had"))

В скобках первая подстрока — это то, что мы хотим заменить, а вторая подстрока — это то, чем мы заменяем эту первую подстроку. Наш вывод будет выглядеть так:

Output
Sammy had a balloon.

Использование строковых методов str.join(), str.split() и str.replace() предоставит вам больший контроль над управлять строками в Python.

Заключение

В этом руководстве были рассмотрены некоторые распространенные встроенные методы для строкового типа данных, которые вы можете использовать для работы со строками и управления ими в своих программах Python.

Вы можете узнать больше о других типах данных в статье «Как форматировать текст в Python 3».