В этой статье мы с вами научимся создавать, форматировать, изменять, и удалять строки в Python. По мимо этого, мы с вами разберем различного рода операции со строками.
Строка в python — что такое?
Строка — ничто иное как последовательность символов. В Python работа со строками, организована довольно удобно. Как и с остальными типами данных, мы поверхностно уже разбирали работу со строками, а сегодня мы немного углубимся в эту тему.
Как создать строку в Python?
Строки в Python заключаются в кавычки (одинарные, двойные), и даже можно заключать в тройные кавычки, правда на практике тройные кавычки используются для документационных строк. Рассмотрим пример создания строки, и пошагово пройдемся по основным методам.
str = 'Hello' str2 = "Hello" str3 = '''Hello''' str4 = """Привет, добро пожаловать в мир чудес и магии под названием Python""" print(str,str2,str3,str4) Результат: Hello Hello Hello Привет, добро пожаловать в мир чудес и магии под названием Python
Как получить доступ к символам в строке?
Как и со списками и с кортежами, мы можем получить доступ к символам в строке с помощью индексации. Мы можем получить доступ как к отдельному символу, так и к к ряду символов, счет индекса начинается с нуля. При поптыке получить доступ к символу, который находится вне диапазона строки, Python выдаст ошибку IndexError.
Python так же допускает отрицательную индексацию. Индекс -1 будет равен последнему символу, -2 будет равен предпоследнему символу и так далее. К диапазону элементов, мы получаем доступ, с помощью знакомых нам уже срезов :.
str = "pydocs" print(str) print(str[0]) print([str[-1]]) print(str[1:5]) print(str[4:2]) Результат: pydocs p s ydocs cs
Срезы лучше всего понять, когда есть визуализация происходящего, ниже уже знакомая вам визуализация.
Как изменить или удалить строку?
Как и в случае с кортежами, строки тоже являются неизменными, но мы можем изменить всю строку, путем переназначения строки в переменной.
str = "pydocs" str[2] = "a" Результат: TypeError: 'str' object does not support item assignment str = "pydocs" str = "pydocs.ru" Результат: pydocs.ru
Удаление строки происходит с помощью ключевого слова del, мы не можем удалить конкретный символ, мы можем удалить только всю строку.
str = "pydocs" del str[1] TypeError: 'str' object doesn't support item deletion del str print(str) Результат: NameError: name 'str' is not defined
Строковые операции в Python
Со строками в Python можно проводить множество операций, благодаря этому, этот тип данных, является наиболее часто используемым.
Конкатенация строк
Оператором + в Python можно сложить два и более строк. Оператором * можно воспользоваться, если нам необходимо повторить строку определенное количество раз.
str1 = "Hello" str2="World" print(str1 + str2) Результат: HelloWorld print(str1 * 3) Результат: HelloHelloHello
Итерация по строке
Python так же позовляет проводить перебор строки, с помощью цикла for. Ниже приведен пример подсчета количества букв «o».
count = 0 for i in "Hello World": if i == 'o': count += 1 print(count, "символа найдено") Результат: 2 символа найдено
Проверка на наличие символа
Мы можем проверить наличие символа в строке используя ключевое слово in.
"y" in "pydocs" True "da" no in "pydocs" False
Форматирование строк в Python
Представим себе ситуацию, где мы хотим распечатать текст Pyth’on — «Мир Магии» и волшебства. В тексте используются как одинарные, так и двойные кавычки, при попытке распечатки, это приведет к синтаксической ошибке. В Python конечно же это предусмотрено, и есть несколько вариантов обхода этой проблемы.
Во первых мы можем просто воспользоваться тройными кавычками «»». Но чаще всего, вы будете встречаться с таким понятием как «Экранирование кавычек» — escape последовательность.Рассмотрим оба варианта:
print("""<span class="modulo">Pyth'on - "Мир Магии" и волшебства"""</span>) print('<span class="modulo">Pyth\'on - "Мир Магии" и волшебства</span>')
Ниже представлены команды для Escape последовательностей
Escape последовательность | Описание |
\новая строка | Игнорируется, строка продолжается на новой строке |
\\ | Сам символ обратного слеша (остается один символ \) |
\' | Апостроф (остается один ‘) |
\" | Кавычка (остается один символ ") |
\f | Форматированная строка |
\n | Новая строка |
\r | Возврат каретки |
\t | Горизонтальная табуляция |
\ооо | Символ с восьмеричным значением ооо |
\xHH | Символ с шестнадцатеричным значением HH |
print("C:\Users\User\Desktop") Результат: C:\Users\User\Desktop print("Это строка \n это новая строка") Результат: Это строка это новая строка
Метод format() и f — строки для форматирования строк
Довольно часто в ходе программирования, вам придется распечатывать значения переменных, вместе со строками. Для этого используются форматированные строки. Рассмотрим пример вывода с использованием метода format() и f-строки.
name = "{},{} и {}".format("Тимур","Антон","Катя") print(name) Результат: Тимур, Антон, и Катя name = "{s},{b} и {j}".format(j='Тимур', b='Антон', s = 'Катя') print(name) Результат: Катя Антон, и Тимур
С реализацией метода format() думаю мы разобрались, теперь посмотрим, что из себя представляют f строки.
name = "Тимур" age = 30 print(f"Меня зовут {name} Мне {age} лет.") Результат: Меня зовут Тимур. Мне 30 лет.
На мой взгляд использование f- строк удобнее, и в большинстве случаев я именно так и делаю. Есть еще более старый метод форматирования строк, sprintf(), который использует оператор %, но я его специально не стал описывать.
Самые популярные методы строк
Операции над строками в Python, очень хорошо реализованы, и существо множество различных методов, о них можно почитать в официальной документации.
Вот некоторые, более часто используемые методы lower(), upper(),.join(), split(),find(), replace()
"PyDocs.ru".lower() 'pydocs.ru' "PyDocs.ru".upper() 'PYDOCS.RU' "Это мир магии и волшебства под названием Python".split() ['Это','мир','магии','и','волшебства','под','названием','Python',] 'Happy New Year'.find('ew') 7 'Happy New Year'.replace('Happy', 'Python') 'Python New Year'