Cтрока — это последовательность символов. Например, "hello"
— это строка, состоящая из набора символов: 'h'
, 'e'
, 'l'
, 'l'
и 'o'
.
Для представления строки в Python могут использоваться двойные или одинарные кавычки. Например:
1 2 3 4 5 |
# Создание строки с помощью двойных кавычек string1 = "Python programming" # Создание строки с помощью одинарных кавычек string1 = 'Python programming' |
Пример использования строк в Python:
1 2 3 4 5 6 |
# Создание переменной строкового типа name = "Python" print(name) message = "I love Python." print(message) |
Результат:
Python
I love Python.
Здесь создаются строковые переменные: name
и message
, содержащие значения: "Python"
и "I love Python"
соответственно. Хотя в данном примере для представления строк используются двойные кавычки, могут использоваться и одинарные.
Доступ к символам строки в Python
Доступ к символам строки в Python может осуществляться тремя способами:
Индексация: рассмотрение строки как списка и получение доступа к символу по его индексу. Например:
1 2 3 4 |
greet = 'hello' # Получение доступа к символу под первым индексом print(greet[1]) # выведет "e" |
Отрицательная индексация: подобно списку, в Python разрешена отрицательная индексация для доступа к символам строки. Например:
1 2 3 4 |
greet = 'hello' # Получение доступа к 4-му символу с конца print(greet[-4]) # выведет "e" |
Срез: получение доступа к диапазону символов строки посредством оператора среза :
. Например:
1 2 3 4 |
greet = 'Hello' # Получение последовательности символов с первого по третий индексы print(greet[1:4]) # выведет "ell" |
Примечание: Если попытаться получить доступ к индексу за пределами диапазона или использовать числа, отличные от целых (например, числа с плавающей точкой), то Python выдаст ошибку.
Иммутабельность строк в Python
Строки в Python иммутабельны. Это означает, что составляющие их символы не могут быть изменены. Например:
1 2 3 |
message = 'Hola Amigos' message[0] = 'H' print(message) |
Результат:
TypeError: 'str' object does not support item assignment
Однако, переменной можно присвоить новое строковое значение. Например:
1 2 3 4 5 |
message = 'Hola Amigos' # Присваиваем переменной message новое значение message = 'Hello Friends' print(message) # выведет "Hello Friends" |
Многострочные строки в Python
В Python существуют многострочные строки. Для их создания используются тройные двойные """
или тройные одинарные '''
кавычки. Например:
1 2 3 4 5 6 |
# Многострочная строка message = """ Never gonna give you up Never gonna let you down """ print(message) |
Результат:
Never gonna give you up
Never gonna let you down
Здесь все то, что заключено в тройные кавычки, является одной многострочной строкой.
Операции со строками в Python
Возможность осуществления множества операций со строками делает этот тип данных одним из самых часто используемых в Python.
Сравнение двух строк
Для сравнения двух строк используется оператор ==
. Если строки одинаковые, оператор вернет True
, в противном случае — False
. Например:
1 2 3 4 5 6 7 8 9 |
str1 = "Hello, world!" str2 = "I love Python." str3 = "Hello, world!" # Сравнение строк str1 и str2 print(str1 == str2) # Сравнение строк str1 и str3 print(str1 == str3) |
Результат:
False
True
В данном примере:
str1
и str2
не одинаковые. Следовательно, результат False
.
str1
и str3
одинаковые. Следовательно, результат True
.
Сочетание (конкатенация) двух и более строк
В Python две и более строки могут быть объединены (конкатенированы) с помощью оператора +
. Например:
1 2 3 4 5 6 |
greet = "Hello, " name = "Jack" # Конкатенация строк с помощью оператора + result = greet + name print(result) |
Результат:
Hello, Jack
Здесь оператор +
используется для конкатенации двух строк: greet
и name
.
Итерация по строке
В Python можно итерироваться по строке посредством цикла for. Например:
1 2 3 4 5 |
greet = 'Hello' # Итерация по строке greet for letter in greet: print(letter) |
Результат:
H
e
l
l
o
Длина строки в Python
Узнать длину строки в Python можно с помощью метода len()
. Например:
1 2 3 4 |
greet = 'Hello' # Нахождение длины строки greet print(len(greet)) |
Результат:
5
Проверка на принадлежность к строке
Проверить, содержится ли заданная подстрока в строке, можно при помощи ключевого слова in
. Например:
1 2 |
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-последовательности») используются для экранирования определенных символов в строке.
Предположим, вам нужно включить в строку как двойные, так и одинарные кавычки:
1 2 3 |
example = "He said, "What's there?"" print(example) # выдаст ошибку |
Поскольку строки в Python заключаются в одинарные или двойные кавычки, компилятор будет рассматривать "He said, "
как отдельную строку. Следовательно, вышеприведенный код вызовет ошибку.
Чтобы решить эту проблему, можно использовать escape-символ \
:
1 2 3 4 5 6 7 |
# Экранирование двойных кавычек example = "He said, \"What's there?\"" # Экранирование одинарных кавычек example = 'He said, "What\'s there?"' print(example) |
Результат:
He said, "What's there?"
Вот список всех escape-последовательностей, поддерживаемых Python:
Escape-последовательность | Описание |
\\ | Обратная косая черта (бэкслеш). |
\’ | Одинарная кавычка. |
\» | Двойная кавычка. |
\a | Символ звонка. |
\b | Символ пробела назад (backspace) |
\f | Перевод страницы. |
\n | Перевод строки. |
\r | Возврат каретки. |
\t | Горизонтальная табуляция. |
\v | Вертикальная табуляция. |
\ooo | 8-ричное представление символа. |
\xHH | 16-ричное представление символа. |
Форматирование строк в Python (F-строки)
F-строки в Python делают вывод значений переменных в сочетании со строками более простым. Например:
1 2 3 4 |
name = 'Cathy' country = 'UK' print(f'{name} is from {country}') |
Результат:
Cathy is from UK
Здесь f'{name} is from {country}'
— f-строка.
Это мощный и простой в использовании синтаксис форматирования.