Python: строки

В Python строка — это последовательность символов. Например, "hello" — это строка, содержащая последовательность символов 'h', 'e', 'l', 'l' и 'o'.

Для представления строки в Python мы используем одинарные или двойные кавычки. Например,

# создаём строку с помощью двойных кавычек
string1 = "Python programming"

# создаём строку с помощью одинарных кавычек
string1 = 'Python programming'

Здесь мы создали строковую переменную string1. Переменная инициализирована строкой "Python Programming".


Пример: строка в Python

# создаём строковые переменные

name = "Python"
print(name)

message = "I love Python."
print(message)

Вывод

Python
I love Python.

В примере выше мы создали строковые переменные name и message со значениями "Python" и "I love Python" соответственно.

Здесь мы использовали двойные кавычки для представления строк, но можно использовать и одинарные.


Доступ к символам строки

Доступ к символам в строке можно получить тремя способами.

  • Индексация. Один из способов — обращаться со строками как со списком и использовать значения индексов. Например,

    greet = 'hello'
    
    # доступ к элементу с индексом 1
    print(greet[1]) # "e"
    
  • Отрицательная индексация. Подобно списку, Python разрешает отрицательную индексацию для строк. Например,

    greet = 'hello'
    
    # доступ к 4-му с конца элементу
    print(greet[-4]) # "e"
    
  • Срезы. Получите доступ к диапазону символов в строке с помощью оператора среза — двоеточия :. Например,

    greet = 'Hello'
    
    # доступ к символам с индекса 1 по 3
    print(greet[1:4])  # "ell"
    

Примечание

Если мы попытаемся получить доступ к индексу вне диапазона или использовать числа, отличные от целых, мы получим ошибки.


Строки в Python неизменяемы

В Python строки неизменяемы. Это означает, что символы строки нельзя изменить. Например,

message = 'Hola Amigos'
message[0] = 'H'
print(message)

Вывод

TypeError: 'str' object does not support item assignment

Однако мы можем присвоить имени переменной новую строку. Например,

message = 'Hola Amigos'

# присваиваем новую строку переменной message
message = 'Hello Friends'

print(message); # prints "Hello Friends"

Многострочные строки в Python

Мы также можем создать многострочную строку в Python. Для этого мы используем тройные двойные кавычки """ или тройные одинарные кавычки '''. Например,

# многострочная строка
message = """
Never gonna give you up
Never gonna let you down
"""

print(message)

Вывод

Never gonna give you up
Never gonna let you down

В примере выше всё, что находится внутри тройных кавычек, является одной многострочной строкой.


Операции со строками

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

1. Сравнение двух строк

Мы используем оператор == для сравнения двух строк. Если две строки равны, оператор возвращает True. Иначе возвращает False. Например,

str1 = "Hello, world!"
str2 = "I love Swift."
str3 = "Hello, world!"

# сравниваем str1 и str2
print(str1 == str2)

# сравниваем str1 и str3
print(str1 == str3)

Вывод

False
True

В примере выше:

  1. str1 и str2 не равны. Поэтому результат — False.

  2. str1 и str3 равны. Поэтому результат — True.


2. Объединение двух или более строк

В Python мы можем объединять (конкатенировать) две или более строки с помощью оператора +.

greet = "Hello, "
name = "Jack"

# используем оператор +
result = greet + name
print(result)

# Output: Hello, Jack

В примере выше мы использовали оператор + для объединения двух строк: greet и name.


Итерация по строке

Мы можем перебирать строку с помощью цикла for. Например,

greet = 'Hello'

# перебираем строку greet
for letter in greet:
    print(letter)

Вывод

H
e
l
l
o

Длина строки

В Python мы используем метод len() для нахождения длины строки. Например,

greet = 'Hello'

# считаем длину строки greet
print(len(greet))

# Output: 5

Проверка вхождения в строку

Мы можем проверить, существует ли подстрока в строке или нет, с помощью ключевого слова in.

print('a' in 'program') # True
print('at' not in 'battle') # False

Методы строки в Python

Помимо упомянутых выше, в Python есть множество строковых методов. Вот некоторые из них:

Методы

Описание

upper()

Преобразует строку в верхний регистр

lower()

Преобразует строку в нижний регистр

partition()

Возвращает кортеж

replace()

Заменяет подстроку внутри строки

find()

Возвращает индекс первого вхождения подстроки

rstrip()

Удаляет завершающие символы

split()

Разбивает строку слева

startswith()

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

isnumeric()

Проверяет наличие числовых символов

index()

Возвращает индекс подстроки


Escape-последовательности в Python

Escape-последовательность используется для экранирования некоторых символов внутри строки.

Предположим, нам нужно включить и двойную, и одинарную кавычку внутри строки:

example = "He said, "What's there?""

print(example) # выдаёт ошибку

Поскольку строки представлены одинарными или двойными кавычками, компилятор будет рассматривать "He said, " как строку. Следовательно, приведённый выше код приведёт к ошибке.

Чтобы решить эту проблему, мы используем escape-символ \ в Python.

# экранируем двойные кавычки
example = "He said, \"What's there?\""

# экранируем одинарные кавычки
example = 'He said, "What\'s there?"'

print(example)

# Output: He said, "What's there?"

Вот список всех escape-последовательностей, поддерживаемых Python.

Escape-последовательность

Описание

\\

Обратный слэш

\'

Одинарная кавычка

\"

Двойная кавычка

\a

ASCII Bell

\b

ASCII Backspace

\f

ASCII Formfeed

\n

ASCII Linefeed

\r

ASCII Carriage Return

\t

ASCII Horizontal Tab

\v

ASCII Vertical Tab

\ooo

Символ с восьмеричным значением ooo

\xHH

Символ с шестнадцатеричным значением HH


Форматирование строк (f-Strings)

f-Strings в Python упрощают вывод значений и переменных. Например,

name = 'Cathy'
country = 'UK'

print(f'{name} is from {country}')

Вывод

Cathy is from UK

Здесь f'{name} is from {country}' — это f-строка.

Этот новый синтаксис форматирования мощный и простой в использовании. Теперь мы будем использовать f-Strings для вывода строк и переменных.


Видео: строки в Python