Строки

Срезы

Часто в программировании
требуется выбрать не один какой-то символ, а сразу несколько. Для этого
используются так называемые срезы. Их работу проще показать на конкретных
примерах. Пусть у нас есть наша строка:

msg = "Hello World!"

и мы хотим
выделить последнее слово «World!». Для этого в квадратных скобках
указывается начальный индекс и через двоеточие – конечный. Если мы запишем все
вот в таком виде:

msg6:11

то получим
результат «World» без
восклицательного знака. Дело в том, что последний индекс исключается из
интервала, то есть, интервал определяется как

[6: 11)

Поэтому, мы
должны записать срез так:

msg6:12

Другой пример
для выделения символов «llo»:

msg2:5

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

msg:5

выделяет слово «Hello», а вот так:

msg6:

получим «World!». Наконец,
записав все в таком виде:

msg:

получим ту же
самую строку, не копию! Это можно проверить так:

copy = msg:
print(id(copy), id(msg))

Увидим одно и то же значение id для обеих переменных, это означет, что они ссылаются на один и тот же объект.

В срезах на Python можно
дополнительно указывать шаг через двоеточие. Например, так:

msg::2

мы здесь ставим
еще одно двоеточие и указываем шаг 2, то есть, идем через символ: «HloWrd». Также
это можно комбинировать с граничными значениями:

msg:5:2
msg6::2
msg1:6:2

и использовать
отрицательный шаг:

msg::-1

в этом случае
символы будут перебираться в обратном порядке.

Обрабатываем строку в Python

Представим, что ожидается ввод числа с клавиатуры. Перед преобразованием введенной нами строки в число можно легко проверить, введено ли действительно число. Если это так, выполнится операция преобразования. Для обработки строки используем такой метод в Python, как isnumeric():

string = input("Введите какое-нибудь число: ")
if string.isnumeric():
    number = int(string)
    print(number)

Следующий пример позволяет удалять пробелы в конце и начале строки:

string = "   привет мир!  "
string = string.strip()
print(string)           # привет мир!

Так можно дополнить строку пробелами и выполнить выравнивание:

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

В консоли Python будет выведено следующее:

iPhone 7      52000
Huawei P10      36000

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

Чтобы в Python выполнить поиск в строке, используют метод find(). Он имеет три формы и возвращает индекс 1-го вхождения подстроки в строку:
• find(str): поиск подстроки str производится с начала строки и до её конца;
• find(str, start): с помощью параметра start задаётся начальный индекс, и именно с него и выполняется поиск;
• find(str, start, end): посредством параметра end задаётся конечный индекс, поиск выполняется до него.

Когда подстрока не найдена, метод возвращает -1:

    welcome = "Hello world! Goodbye world!"
index = welcome.find("wor")
print(index)       # 6

# ищем с десятого индекса
index = welcome.find("wor",10)
print(index)       # 21

# ищем с 10-го по 15-й индекс
index = welcome.find("wor",10,15)
print(index)       # -1
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *