Основные методы строк

Поділитись

Рассмотрим основные методы строк, которые мы можем применить в приложениях:

  • isalpha(): возвращает True, если строка состоит только из алфавитных символов
  • islower(): возвращает True, если строка состоит только из символов в нижнем регистре
  • isupper(): возвращает True, если все символы строки в верхнем регистре
  • isdigit(): возвращает True, если все символы строки — цифры
  • isnumeric(): возвращает True, если строка представляет собой число
  • startswith(str): возвращает True, если строка начинается с подстроки str
  • endswith(str): возвращает True, если строка заканчивается на подстроку str
  • lower(): переводит строку в нижний регистр
  • upper(): переводит строку в вехний регистр
  • title(): начальные символы всех слов в строке переводятся в верхний регистр
  • capitalize(): переводит в верхний регистр первую букву только самого первого слова строки
  • lstrip(): удаляет начальные пробелы из строки
  • rstrip(): удаляет конечные пробелы из строки
  • strip(): удаляет начальные и конечные пробелы из строки
  • ljust(width): если длина строки меньше параметра width, то справа от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по левому краю
  • rjust(width): если длина строки меньше параметра width, то слева от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по правому краю
  • center(width): если длина строки меньше параметра width, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по центру
  • find(str[, start [, end]): возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1
  • replace(old, new[, num]): заменяет в строке одну подстроку на другую
  • split([delimeter[, num]]): разбивает строку на подстроки в зависимости от разделителя
  • join(strs): объединяет строки в одну строку, вставляя между ними определенный разделитель

Например, если мы ожидаем ввод с клавиатуры числа, то перед преобразованием введенной строки в число можно проверить, с помощью метода isnumeric() введено ли в действительности число, и если так, то выполнить операцию преобразования:

1
2
3
4
string = input("Введите число: ")
if string.isnumeric():
number = int(string)
print(number)

Проверка, начинается или оканчивается строка на определенную подстроку:

1
2
3
4
file_name = "hello.py"
 starts_with_hello = file_name.startswith("hello")  
# Trueends_with_exe = file_name.endswith("exe")        
   # False

Удаление пробелов в начале и в конце строки:

1
2
3
string = "   hello  world!
  "string = string.strip()
print(string)           # hello  world!

Дополнение строки пробелами и выравнивание:

1
2
print("iPhone 7:", "52000".rjust(10))
print("Huawei P10:", "36000".rjust(10))

Консольный вывод:

iPhone 7:      52000
Huawei P10:      36000

Поиск в строке

Для поиска подстроки в строке в Python применяется метод find(), который возвращает индекс первого вхождения подстроки в строку и имеет три формы:

  • find(str): поиск подстроки str ведется с начала строки до ее конца
  • find(str, start): параметр start задает начальный индекс, с которого будет производиться поиск
  • find(str, start, end): параметр end задает конечный индекс, до которого будет идти поиск

Если подстрока не найдена, метод возвращает -1:

1
2
3
4
5
6
7
8
9
10
11
welcome = "Hello world! Goodbye world!"
index = welcome.find("wor")

print(index)       # 6
 # поиск с 10-го индекса
index = welcome.find("wor",10)
print(index)       # 21

 # поиск с 10 по 15 индекс
index = welcome.find("wor",10,15)
print(index)       # -1

Замена в строке

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

  • replace(old, new): заменяет подстроку old на new
  • replace(old, new, num): параметр num указывает, сколько вхождений подстроки old надо заменить на new
1
2
3
4
5
6
7
8
9
10
11
12
13
phone = "+1-234-567-89-10" 
# замена дефисов на пробелe
dited_phone = phone.replace("-", " ")
print(edited_phone)    
# +1 234 567 89 10 
# удаление дефисовe
dited_phone = phone.replace("-", "")
print(edited_phone)    
# +12345678910
 # замена только первого дефисаe
dited_phone = phone.replace("-", "", 1)
print(edited_phone)    
# +1234-567-89-10

Разделение на подстроки

Метод split() разбивает строку на список подстрок в зависимости от разделителя. В качестве разделителя может выступать любой символ или последовательность символов. Данный метод имеет следующие формы:

  • split(): в качестве разделителя используется пробел
  • split(delimeter): в качестве разделителя используется delimeter
  • split(delimeter, num): параметр num указывает, сколько вхождений delimeter используется для разделения. Оставшаяся часть строки добавляется в список без разделения на подстроки
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой"
# разделение по пробелам
splitted_text = text.split()
print(splitted_text)
print(splitted_text[6])     # дуб,
 # разбиение по запятымsp
litted_text = text.split(",")
print(splitted_text)
print(splitted_text[1])    
# в два обхвата дуб 
# разбиение по первым пяти пробеламsp
litted_text = text.split(" ", 5)
print(splitted_text)       
print(splitted_text[5])    
# обхвата дуб, с обломанными ветвями и с обломанной корой

Соединение строк

При рассмотрении простейших операций со строками было показано, как объединять строки с помощью операции сложения. Другую возможность для соединения строк представляет метод join(): он объединяет список строк. Причем текущая строка, у которой вызывается данный метод, используется в качестве разделителя:

1
2
3
4
5
6
7
8
9
words = ["Let", "me", "speak", "from", "my", "heart", "in", "English"] 
# разделитель - пробел
sentence = " ".join(words)
print(sentence) 
# Let me speak from my heart in English 
# разделитель - вертикальная черта
sentence = " | ".join(words)
print(sentence) 
# Let | me | speak | from | my | heart | in | English

Вместо списка в метод join можно передать простую строку, тогда разделитель будет вставляться между символами этой строки:

1
2
3
word = "hello"joined_word = "|".join(word)
print(joined_word)   
   # h|e|l|l|o


Поділитись