Документация по Python. Теоретические материалы, и практические задачи

Python работа со строками

В этой статье мы с вами научимся создавать, форматировать, изменять, и удалять строки в 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'

Оставьте комментарий

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