В этой статье мы с вами научимся создавать, форматировать, изменять, и удалять строки в 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 = "ege-soch.ru" Результат: ege-soch.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()
'ege-soch.ru'
"PyDocs.ru".upper()
'PYDOCS.RU'
"Это мир магии и волшебства под названием Python".split()
['Это','мир','магии','и','волшебства','под','названием','Python',]
'Happy New Year'.find('ew')
7
'Happy New Year'.replace('Happy', 'Python')
'Python New Year'





