1 added
1 removed
Original
2026-01-01
Modified
2026-02-21
1
<p>Строковый тип данных - один из основных типов данных в Python. Он используется для хранения символьной информации: букв, чисел, знаков препинания и других символов. Например, отлично подходит для записи Ф. И. О. или адресов клиентов в базах данных.</p>
1
<p>Строковый тип данных - один из основных типов данных в Python. Он используется для хранения символьной информации: букв, чисел, знаков препинания и других символов. Например, отлично подходит для записи Ф. И. О. или адресов клиентов в базах данных.</p>
2
<p>В этой статье разберём полезные методы работы со строкам и узнаем, как их складывать, умножать, научимся считать индексы в строковых переменных попрактикуемся с кодом. Приступим!</p>
2
<p>В этой статье разберём полезные методы работы со строкам и узнаем, как их складывать, умножать, научимся считать индексы в строковых переменных попрактикуемся с кодом. Приступим!</p>
3
<p><strong>Содержание</strong></p>
3
<p><strong>Содержание</strong></p>
4
<ul><li><a>Вспомним, что такое строки</a></li>
4
<ul><li><a>Вспомним, что такое строки</a></li>
5
<li><a>Работа со строками в Python: базовые операции</a></li>
5
<li><a>Работа со строками в Python: базовые операции</a></li>
6
</ul><ul><li><a>Сложение (конкатенация)</a></li>
6
</ul><ul><li><a>Сложение (конкатенация)</a></li>
7
<li><a>Вычитание</a></li>
7
<li><a>Вычитание</a></li>
8
<li><a>Дублирование (умножение)</a></li>
8
<li><a>Дублирование (умножение)</a></li>
9
<li><a>Принадлежность строки</a></li>
9
<li><a>Принадлежность строки</a></li>
10
<li><a>Определение длины строки</a></li>
10
<li><a>Определение длины строки</a></li>
11
<li><a>Доступ по индексу</a></li>
11
<li><a>Доступ по индексу</a></li>
12
<li><a>Срез строки</a></li>
12
<li><a>Срез строки</a></li>
13
<li><a>Шаг извлечения среза</a></li>
13
<li><a>Шаг извлечения среза</a></li>
14
</ul><ul><li><a>Таблица методов и функций строк</a></li>
14
</ul><ul><li><a>Таблица методов и функций строк</a></li>
15
<li><a>Примеры кода</a></li>
15
<li><a>Примеры кода</a></li>
16
</ul><p>Строковый тип данных - это последовательности символов Unicode любой длины, заключённые в одинарные, двойные или тройные кавычки. Символами могут быть буквы, числа, знаки препинания, специальные символы и так далее. Главное - чтобы их с двух сторон окружали кавычки. В Python текстовый тип данных обозначается буквами str (<em>от англ. string</em> -<em>строка</em>).</p>
16
</ul><p>Строковый тип данных - это последовательности символов Unicode любой длины, заключённые в одинарные, двойные или тройные кавычки. Символами могут быть буквы, числа, знаки препинания, специальные символы и так далее. Главное - чтобы их с двух сторон окружали кавычки. В Python текстовый тип данных обозначается буквами str (<em>от англ. string</em> -<em>строка</em>).</p>
17
<p>Например, создадим три переменных, используя разное число кавычек:</p>
17
<p>Например, создадим три переменных, используя разное число кавычек:</p>
18
s1 = 'Hello, world!' s2 = "Hello, world2" s3 = '''Используем тройные кавычки для вывода многострочного текста'''<p>Проверим, действительно ли мы создали переменные нужного типа. Для этого воспользуемся функцией type:</p>
18
s1 = 'Hello, world!' s2 = "Hello, world2" s3 = '''Используем тройные кавычки для вывода многострочного текста'''<p>Проверим, действительно ли мы создали переменные нужного типа. Для этого воспользуемся функцией type:</p>
19
# Выведем на печать типы переменных s1, s2, s3 s1 = 'Hello, world!' print(type(s1)) s2 = "Hello, world2" print(type(s2)) s3 = '''Используем тройные кавычки для вывода многострочного текста''' print(type(s3))<p>Запустим код и посмотрим на результат:</p>
19
# Выведем на печать типы переменных s1, s2, s3 s1 = 'Hello, world!' print(type(s1)) s2 = "Hello, world2" print(type(s2)) s3 = '''Используем тройные кавычки для вывода многострочного текста''' print(type(s3))<p>Запустим код и посмотрим на результат:</p>
20
<class 'str'> <class 'str'> <class 'str'><p>Да. Все три переменные имеют тип str, то есть являются строковыми.</p>
20
<class 'str'> <class 'str'> <class 'str'><p>Да. Все три переменные имеют тип str, то есть являются строковыми.</p>
21
<p>Разберём подробнее, какие операции можно производить над строками, и поговорим про функции и методы этого типа данных.</p>
21
<p>Разберём подробнее, какие операции можно производить над строками, и поговорим про функции и методы этого типа данных.</p>
22
<p>Перед тем как перейти к конкретным действиям, напомним что строки в Python - неизменяемый тип данных. Это означает, что строковую переменную нельзя изменить с помощью операторов, функций и методов. Если мы хотим сохранить результат изменения существующей строки, то надо создать новую переменную.</p>
22
<p>Перед тем как перейти к конкретным действиям, напомним что строки в Python - неизменяемый тип данных. Это означает, что строковую переменную нельзя изменить с помощью операторов, функций и методов. Если мы хотим сохранить результат изменения существующей строки, то надо создать новую переменную.</p>
23
<p>Начнём! Разберём основные виды операций над строками. Запускайте любимый редактор кода и повторяйте действия за нами.</p>
23
<p>Начнём! Разберём основные виды операций над строками. Запускайте любимый редактор кода и повторяйте действия за нами.</p>
24
<p>Строки, как и числа, можно складывать, проще говоря, склеивать между собой с помощью оператора +. Эту операцию иногда называют "сцеплением".</p>
24
<p>Строки, как и числа, можно складывать, проще говоря, склеивать между собой с помощью оператора +. Эту операцию иногда называют "сцеплением".</p>
25
<p>Например:</p>
25
<p>Например:</p>
26
s1 = 'Skill' s2 = 'box' s3 = s1 + s2 print(s3)<p>Результат:</p>
26
s1 = 'Skill' s2 = 'box' s3 = s1 + s2 print(s3)<p>Результат:</p>
27
Skillbox<p>Здесь, в отличие от сложения чисел, перестановка мест слагаемых меняет результат:</p>
27
Skillbox<p>Здесь, в отличие от сложения чисел, перестановка мест слагаемых меняет результат:</p>
28
s3 = s2 + s1 print(s3)<p>Результат</p>
28
s3 = s2 + s1 print(s3)<p>Результат</p>
29
boxSkill<p>Это важно помнить, не путая сложение строк со сложением чисел. В математическом плане это разные действия.</p>
29
boxSkill<p>Это важно помнить, не путая сложение строк со сложением чисел. В математическом плане это разные действия.</p>
30
<p>Настоящей операции вычитания строк, по аналогии с числами, в Python не существует - мы не сможем отнять символы из строки с помощью операции -. Но можно использовать метод replace().</p>
30
<p>Настоящей операции вычитания строк, по аналогии с числами, в Python не существует - мы не сможем отнять символы из строки с помощью операции -. Но можно использовать метод replace().</p>
31
<p>Он создаёт новую строку путём замены частей исходной строки. Лучше всего показать это на примере. Попробуем удалить часть слова, заменив её пустой строкой:</p>
31
<p>Он создаёт новую строку путём замены частей исходной строки. Лучше всего показать это на примере. Попробуем удалить часть слова, заменив её пустой строкой:</p>
32
# Вычтем часть "box" из строки "Skillbox" s1 = 'Skillbox' s2 = 'box' s3 = s1.replace(s2, '') # Передаём методу два аргумента - то, что хотим убрать из строки, и то, на что планируем заменить удалённый фрагмент print(s3)<p>В результате получим:</p>
32
# Вычтем часть "box" из строки "Skillbox" s1 = 'Skillbox' s2 = 'box' s3 = s1.replace(s2, '') # Передаём методу два аргумента - то, что хотим убрать из строки, и то, на что планируем заменить удалённый фрагмент print(s3)<p>В результате получим:</p>
33
Skill<p>В языке Python строки можно умножать на целые числа. Операция работает просто - повторяет содержимое переменной указанное количество раз. Например:</p>
33
Skill<p>В языке Python строки можно умножать на целые числа. Операция работает просто - повторяет содержимое переменной указанное количество раз. Например:</p>
34
st = 'ab ' * 6 print(st)<p>В результате получим:</p>
34
st = 'ab ' * 6 print(st)<p>В результате получим:</p>
35
ab ab ab ab ab ab<p>Операцию умножения удобно использовать, если строку нужно продублировать много раз без ручного ввода. Например:</p>
35
ab ab ab ab ab ab<p>Операцию умножения удобно использовать, если строку нужно продублировать много раз без ручного ввода. Например:</p>
36
st = 35 * '*' print(st)<p>Результат:</p>
36
st = 35 * '*' print(st)<p>Результат:</p>
37
***********************************<p>Иногда разработчикам приходится проверять, есть ли в составе строки определённый фрагмент, который называют подстрокой. Например, мы хотим подтвердить наличие пользователя с определённым именем в нашей базе данных, где имя хранится вместе с фамилией - Иван Иванов. Строка здесь - это Иван Иванов, а нужная нам подстрока - Иван. Как это проверить? Воспользуемся проверкой принадлежности строки.</p>
37
***********************************<p>Иногда разработчикам приходится проверять, есть ли в составе строки определённый фрагмент, который называют подстрокой. Например, мы хотим подтвердить наличие пользователя с определённым именем в нашей базе данных, где имя хранится вместе с фамилией - Иван Иванов. Строка здесь - это Иван Иванов, а нужная нам подстрока - Иван. Как это проверить? Воспользуемся проверкой принадлежности строки.</p>
38
<p>Для этого воспользуемся оператором in. Он возвращает True, если одна подстрока входит в состав строки, в противном случае возвращает False.</p>
38
<p>Для этого воспользуемся оператором in. Он возвращает True, если одна подстрока входит в состав строки, в противном случае возвращает False.</p>
39
<p>Например:</p>
39
<p>Например:</p>
40
s1 = 'Иван Иванов' s2 = 'Иван' if s2 in s1: # Проверяем, есть ли "содержимое" строки s2 в s1 print('Пользователь Иван есть в нашей базе данных') else: print('Пользователь Иван в базе данных отсутствует')<p>С помощью оператора in можно упростить поиск строк в разных переменных. Например, нам необходимо проверить наличие символа в четырёх строковых переменных. Мы можем написать такой код:</p>
40
s1 = 'Иван Иванов' s2 = 'Иван' if s2 in s1: # Проверяем, есть ли "содержимое" строки s2 в s1 print('Пользователь Иван есть в нашей базе данных') else: print('Пользователь Иван в базе данных отсутствует')<p>С помощью оператора in можно упростить поиск строк в разных переменных. Например, нам необходимо проверить наличие символа в четырёх строковых переменных. Мы можем написать такой код:</p>
41
st = 'a' if st == 'a' or st == 'b' or st == 'c' or st == 'd': print('YES')<p>Выглядит сложно. Упростим его, объединив содержимое переменных в одну строку:</p>
41
st = 'a' if st == 'a' or st == 'b' or st == 'c' or st == 'd': print('YES')<p>Выглядит сложно. Упростим его, объединив содержимое переменных в одну строку:</p>
42
st = 'a' if st in 'abcd': print('YES')<p>Не забывайте, что регистр символов имеет значение. Например, буквы "A" и "a" компьютер воспринимает как разные.</p>
42
st = 'a' if st in 'abcd': print('YES')<p>Не забывайте, что регистр символов имеет значение. Например, буквы "A" и "a" компьютер воспринимает как разные.</p>
43
<p>Это количество содержащихся в строке символов, включая пробелы. Чтобы определить длину строки, используется функция len()<em>(от англ. length - длина)</em>. Например:</p>
43
<p>Это количество содержащихся в строке символов, включая пробелы. Чтобы определить длину строки, используется функция len()<em>(от англ. length - длина)</em>. Например:</p>
44
ln = len('Skillbox') print(ln) s1 = 'skill' print(len(s1))<p>Результат выполнения:</p>
44
ln = len('Skillbox') print(ln) s1 = 'skill' print(len(s1))<p>Результат выполнения:</p>
45
8 5<p>Чтобы выделить один символ строки, используют индексацию. Нумерация символов начинается с нуля и заканчивается длиной строки -1.</p>
45
8 5<p>Чтобы выделить один символ строки, используют индексацию. Нумерация символов начинается с нуля и заканчивается длиной строки -1.</p>
46
<p>Например, посмотрим на индексацию строковой переменной, значение которой равно 'Skillbox':</p>
46
<p>Например, посмотрим на индексацию строковой переменной, значение которой равно 'Skillbox':</p>
47
-
<p>Мы видим, что нумерация начинается с нуля, а заканчивается числом 7, то есть равна количеству символов в строке с вычетом единицы.</p>
47
+
<p>Мы видим, что нумерация начинается с нуля, а заканчивается числом 7, то есть равна количест��у символов в строке с вычетом единицы.</p>
48
<p>Чтобы распечатать символы по их индексу, его необходимо указать в квадратных скобках. Вот так:</p>
48
<p>Чтобы распечатать символы по их индексу, его необходимо указать в квадратных скобках. Вот так:</p>
49
st = 'Skillbox' print(st[0]) print(st[1]) print(st[2]) print(st[3]) print(st[4]) print(st[5]) print(st[6]) print(st[7])<p>В результате выполнения кода получим:</p>
49
st = 'Skillbox' print(st[0]) print(st[1]) print(st[2]) print(st[3]) print(st[4]) print(st[5]) print(st[6]) print(st[7])<p>В результате выполнения кода получим:</p>
50
S k i l l b o x<p>Если мы попытаемся использовать индекс больший, чем количество символов в строке, то получим ошибку. Проверим:</p>
50
S k i l l b o x<p>Если мы попытаемся использовать индекс больший, чем количество символов в строке, то получим ошибку. Проверим:</p>
51
st = 'Skillbox' print(st[8])<p>Результат выполнения:</p>
51
st = 'Skillbox' print(st[8])<p>Результат выполнения:</p>
52
IndexError: string index out of range<p>Индексацию также можно начинать с конца строки. В таком случае последний символ будет иметь индекс, равный -1, а индекс первого символа будет равен длине строки со знаком -. Посмотрим на такую индексацию на нашем примере:</p>
52
IndexError: string index out of range<p>Индексацию также можно начинать с конца строки. В таком случае последний символ будет иметь индекс, равный -1, а индекс первого символа будет равен длине строки со знаком -. Посмотрим на такую индексацию на нашем примере:</p>
53
<p>Если мы используем индекс меньше отрицательного значения длины строки, программа также выдаст ошибку IndexError, например:</p>
53
<p>Если мы используем индекс меньше отрицательного значения длины строки, программа также выдаст ошибку IndexError, например:</p>
54
st = 'Skillbox' print(st[-9])<p>В результате получим:</p>
54
st = 'Skillbox' print(st[-9])<p>В результате получим:</p>
55
IndexError: string index out of range<p>Если нам нужно получить не один символ, а часть строки, используются срезы. Срез с двумя параметрами выглядит так:</p>
55
IndexError: string index out of range<p>Если нам нужно получить не один символ, а часть строки, используются срезы. Срез с двумя параметрами выглядит так:</p>
56
<p>st[начальный индекс:конечный индекс]</p>
56
<p>st[начальный индекс:конечный индекс]</p>
57
<p>Срез извлекает подстроку, начиная c начального индекса (включительно) и заканчивая последним индексом (не включая его), то есть символ с конечным индексом в срез не входит. Не забывайте, что индексация строки начинается с 0.</p>
57
<p>Срез извлекает подстроку, начиная c начального индекса (включительно) и заканчивая последним индексом (не включая его), то есть символ с конечным индексом в срез не входит. Не забывайте, что индексация строки начинается с 0.</p>
58
<p>Например:</p>
58
<p>Например:</p>
59
st = 'Skillbox' print(st[0:3]) print(st[2:5]) print(st[4:7])<p>Результат выполнения кода:</p>
59
st = 'Skillbox' print(st[0:3]) print(st[2:5]) print(st[4:7])<p>Результат выполнения кода:</p>
60
Ski ill lbo<p>Если не указывать начальный индекс, то срез берётся с начала строки. Если не указывать конечный - то до конца строки. Если опустить оба параметра, то срез возвращает всю строку. Попробуем несколько вариантов:</p>
60
Ski ill lbo<p>Если не указывать начальный индекс, то срез берётся с начала строки. Если не указывать конечный - то до конца строки. Если опустить оба параметра, то срез возвращает всю строку. Попробуем несколько вариантов:</p>
61
st = 'Skillbox' print(st[:6]) # Срез с начала строки print(st[5:]) # Срез до конца строки print(st[:]) # Целая строка<p>Получаем срезы:</p>
61
st = 'Skillbox' print(st[:6]) # Срез с начала строки print(st[5:]) # Срез до конца строки print(st[:]) # Целая строка<p>Получаем срезы:</p>
62
Skillb box Skillbox<p>Если мы зададим конечный индекс среза больше, чем количество символов в строке, то ошибки не будет. В этом случае программа возвращает срез до конца строки.</p>
62
Skillb box Skillbox<p>Если мы зададим конечный индекс среза больше, чем количество символов в строке, то ошибки не будет. В этом случае программа возвращает срез до конца строки.</p>
63
<p>Например:</p>
63
<p>Например:</p>
64
st = 'Skillbox' print(st[:10])<p>Получим срез:</p>
64
st = 'Skillbox' print(st[:10])<p>Получим срез:</p>
65
Skillbox<p>Срез, в котором начальный индекс больше или равен конечному, возвращает пустую строку, например:</p>
65
Skillbox<p>Срез, в котором начальный индекс больше или равен конечному, возвращает пустую строку, например:</p>
66
st = 'Skillbox' print(st[2:2]) # Конечный индекс равен начальному print(st[5:3]) # Конечный индекс меньше начального<p>Этот код вернёт пустые строки, но ошибки не будет. Можете проверить в своём редакторе кода.</p>
66
st = 'Skillbox' print(st[2:2]) # Конечный индекс равен начальному print(st[5:3]) # Конечный индекс меньше начального<p>Этот код вернёт пустые строки, но ошибки не будет. Можете проверить в своём редакторе кода.</p>
67
<p>Индексы могут быть не только положительными, но и отрицательными. В этом случае отсчёт начинается с конца строки. Главное условие - начальный индекс должен быть меньше конечного или пропущен, иначе результатом будет пустая строка.</p>
67
<p>Индексы могут быть не только положительными, но и отрицательными. В этом случае отсчёт начинается с конца строки. Главное условие - начальный индекс должен быть меньше конечного или пропущен, иначе результатом будет пустая строка.</p>
68
<p>Например, программный код:</p>
68
<p>Например, программный код:</p>
69
st = 'Skillbox' print(st[-7:-4]) # Срез с отрицательными индексами print(st[-4:-4]) # Начальный индекс равен конечному print(st[-4:]) # Срез до конца строки print(st[:-3]) # Срез с начала строки print(st[-7:4]) # Срез с положительным и отрицательным индексами<p>Полученный результат:</p>
69
st = 'Skillbox' print(st[-7:-4]) # Срез с отрицательными индексами print(st[-4:-4]) # Начальный индекс равен конечному print(st[-4:]) # Срез до конца строки print(st[:-3]) # Срез с начала строки print(st[-7:4]) # Срез с положительным и отрицательным индексами<p>Полученный результат:</p>
70
kil # Всё сработало как надо # Возврат пустой строки, так как начальный индекс равен конечному lbox # Всё сработало как надо Skill # Всё сработало как надо kil # Всё сработало как надо<p>В срез можно добавить третий параметр, который будет означать шаг извлечения символов.</p>
70
kil # Всё сработало как надо # Возврат пустой строки, так как начальный индекс равен конечному lbox # Всё сработало как надо Skill # Всё сработало как надо kil # Всё сработало как надо<p>В срез можно добавить третий параметр, который будет означать шаг извлечения символов.</p>
71
<p>Например, если мы возьмём срез st[0:6:2] строки st = 'Python', то получим строку 'Pto':</p>
71
<p>Например, если мы возьмём срез st[0:6:2] строки st = 'Python', то получим строку 'Pto':</p>
72
<p>Рассмотрим пример с отрицательными индексами. Например, срез st[-6:-1:2] строки st = 'Python' тоже будет равен 'Pto':</p>
72
<p>Рассмотрим пример с отрицательными индексами. Например, срез st[-6:-1:2] строки st = 'Python' тоже будет равен 'Pto':</p>
73
<p>Шаг среза может быть отрицательным. В этом случае начальный индекс должен быть больше конечного. Символы будут включаться в срез в обратном порядке.</p>
73
<p>Шаг среза может быть отрицательным. В этом случае начальный индекс должен быть больше конечного. Символы будут включаться в срез в обратном порядке.</p>
74
<p>Например, срез st[-3:-7:-2] возвращает строку 'hy'. Как видим, правая граница здесь не включается в срез.</p>
74
<p>Например, срез st[-3:-7:-2] возвращает строку 'hy'. Как видим, правая граница здесь не включается в срез.</p>
75
<p>Отрицательный шаг можно использовать с положительными индексами, например:</p>
75
<p>Отрицательный шаг можно использовать с положительными индексами, например:</p>
76
st = 'Skillbox' print(st[6:1:-2])<p>Результат выполнения:</p>
76
st = 'Skillbox' print(st[6:1:-2])<p>Результат выполнения:</p>
77
oli<p>Чтобы вывести символы строки в обратном порядке, удобно использовать срез [::-1], например:</p>
77
oli<p>Чтобы вывести символы строки в обратном порядке, удобно использовать срез [::-1], например:</p>
78
st = 'шорох' print(st[::-1]) st = 'город' print(st[::-1]) st = 'топор' print(st[::-1])<p>В результате выполнения получим:</p>
78
st = 'шорох' print(st[::-1]) st = 'город' print(st[::-1]) st = 'топор' print(st[::-1])<p>В результате выполнения получим:</p>
79
хорош дорог ропот<p>Работа со срезами может казаться сложной - надо правильно задавать интервал, шаг или даже использовать отрицательные индексы. Попробуйте попрактиковаться на разных примерах, меняя параметры среза. Через пару десятков слов точно получится разобраться.</p>
79
хорош дорог ропот<p>Работа со срезами может казаться сложной - надо правильно задавать интервал, шаг или даже использовать отрицательные индексы. Попробуйте попрактиковаться на разных примерах, меняя параметры среза. Через пару десятков слов точно получится разобраться.</p>
80
<p>Для строк существует несколько десятков полезных методов и функций, позволяющих преобразовывать текстовые переменные. Подробнее с ними можно<a>ознакомиться в официальной документации</a>. Собрали в таблицу наиболее популярные из них:</p>
80
<p>Для строк существует несколько десятков полезных методов и функций, позволяющих преобразовывать текстовые переменные. Подробнее с ними можно<a>ознакомиться в официальной документации</a>. Собрали в таблицу наиболее популярные из них:</p>
81
<strong>S.find(str, [start], [end])</strong>Поиск подстроки str в строке S в интервале индексов (start, end). Возвращает индекс первого совпавшего значения подстроки. Если подстрока не найдена, возвращает -1.<p>Здесь</p>
81
<strong>S.find(str, [start], [end])</strong>Поиск подстроки str в строке S в интервале индексов (start, end). Возвращает индекс первого совпавшего значения подстроки. Если подстрока не найдена, возвращает -1.<p>Здесь</p>
82
start и end - необязательные аргументы. Если они не заданы, поиск ведётся во всей строке<strong>S.rfind(str, [start], [end])</strong>Поиск подстроки str в строке S в интервале индексов (start, end). Возвращает индекс последнего совпавшего значения подстроки. Если подстрока не найдена, возвращает -1.<p>Здесь</p>
82
start и end - необязательные аргументы. Если они не заданы, поиск ведётся во всей строке<strong>S.rfind(str, [start], [end])</strong>Поиск подстроки str в строке S в интервале индексов (start, end). Возвращает индекс последнего совпавшего значения подстроки. Если подстрока не найдена, возвращает -1.<p>Здесь</p>
83
start и end - необязательные аргументы. Если они не заданы, поиск ведётся во всей строке<strong>S.count(t)</strong>Возвращает количество непересекающихся вхождений подстроки t в строку S. То есть метод начинает искать следующую подстроку строго после окончания предыдущей.<p>Например, в строке</p>
83
start и end - необязательные аргументы. Если они не заданы, поиск ведётся во всей строке<strong>S.count(t)</strong>Возвращает количество непересекающихся вхождений подстроки t в строку S. То есть метод начинает искать следующую подстроку строго после окончания предыдущей.<p>Например, в строке</p>
84
s = 'ababab' есть два пересекающихся вхождения 'abab', но непересекающееся вхождение одно. Метод вернёт единицу<strong>S.isdigit()</strong>Проверяет, состоит ли строка из цифр. Если да, возвращает True, иначе - False<strong>S.upper()</strong>Преобразует символы строки к верхнему регистру. Заглавные буквы и символы, которые не относятся к буквам, не меняются<strong>S.lower()</strong>Преобразует символы строки к нижнему регистру. Строчные буквы и символы, которые не относятся к буквам, не меняются<strong>S.lstrip([символ])</strong>Удаляет определённые символы в начале строки. Здесь [символ] - необязательный аргумент. Если он не задан, метод удаляет пробелы<strong>S.rstrip([символ])</strong>Удаляет определённые символы в конце строки. Здесь [символ] - необязательный аргумент. Если он не задан, метод удаляет пробелы<strong>S.split([разделитель [, maxsplit]])</strong>Разбивает строку по разделителю и возвращает список, содержащий подстроки. Если разделитель не задан, то строка разбивается по пробелу, символу перевода строки или табуляции.maxsplit - необязательный аргумент, определяет максимальное количество частей, на которые разбивается строка. Если он не задан, то количество фрагментов не ограничивается.<p>При заданном</p>
84
s = 'ababab' есть два пересекающихся вхождения 'abab', но непересекающееся вхождение одно. Метод вернёт единицу<strong>S.isdigit()</strong>Проверяет, состоит ли строка из цифр. Если да, возвращает True, иначе - False<strong>S.upper()</strong>Преобразует символы строки к верхнему регистру. Заглавные буквы и символы, которые не относятся к буквам, не меняются<strong>S.lower()</strong>Преобразует символы строки к нижнему регистру. Строчные буквы и символы, которые не относятся к буквам, не меняются<strong>S.lstrip([символ])</strong>Удаляет определённые символы в начале строки. Здесь [символ] - необязательный аргумент. Если он не задан, метод удаляет пробелы<strong>S.rstrip([символ])</strong>Удаляет определённые символы в конце строки. Здесь [символ] - необязательный аргумент. Если он не задан, метод удаляет пробелы<strong>S.split([разделитель [, maxsplit]])</strong>Разбивает строку по разделителю и возвращает список, содержащий подстроки. Если разделитель не задан, то строка разбивается по пробелу, символу перевода строки или табуляции.maxsplit - необязательный аргумент, определяет максимальное количество частей, на которые разбивается строка. Если он не задан, то количество фрагментов не ограничивается.<p>При заданном</p>
85
maxsplit максимальное количество элементов в списке равно maxsplit+1<strong>chr(число)</strong>Преобразует код ASCII в символ<strong>ord(символ)</strong>Преобразует символ в его код ASCII<strong>sorted(строка)</strong>Сортирует символы строки в порядке возрастания их номеров в таблице ASCII<strong>list(строка)</strong>Возвращает список, состоящий из символов строки<p>Рассмотрим несколько практических примеров использования функций и методов.</p>
85
maxsplit максимальное количество элементов в списке равно maxsplit+1<strong>chr(число)</strong>Преобразует код ASCII в символ<strong>ord(символ)</strong>Преобразует символ в его код ASCII<strong>sorted(строка)</strong>Сортирует символы строки в порядке возрастания их номеров в таблице ASCII<strong>list(строка)</strong>Возвращает список, состоящий из символов строки<p>Рассмотрим несколько практических примеров использования функций и методов.</p>
86
<p>К ним относятся два метода: S.find(str, [start], [end]) и S.rfind(str, [start], [end]).</p>
86
<p>К ним относятся два метода: S.find(str, [start], [end]) и S.rfind(str, [start], [end]).</p>
87
s = 'SkillboxSkillbox' str = 'box' print(s.find(str)) # Возвращает индекс первого совпавшего значения подстроки print(s.rfind(str)) # Возвращает индекс последнего совпавшего значения подстроки<p>Результат выполнения кода:</p>
87
s = 'SkillboxSkillbox' str = 'box' print(s.find(str)) # Возвращает индекс первого совпавшего значения подстроки print(s.rfind(str)) # Возвращает индекс последнего совпавшего значения подстроки<p>Результат выполнения кода:</p>
88
5 13<p>Если подстроки в строке нет, Python возвращает -1:</p>
88
5 13<p>Если подстроки в строке нет, Python возвращает -1:</p>
89
S = 'SkillboxSkillbox' print(S.rfind('abc'))<p>Результат:</p>
89
S = 'SkillboxSkillbox' print(S.rfind('abc'))<p>Результат:</p>
90
-1<p>Поиск в срезе:</p>
90
-1<p>Поиск в срезе:</p>
91
S = 'Skillbox' str = 'box' print(S.find(str,0,7))<p>Результат:</p>
91
S = 'Skillbox' str = 'box' print(S.find(str,0,7))<p>Результат:</p>
92
-1<p>Здесь подстрока str ищется в срезе S[0:7]. Так как правая граница в срез не включается, Python не находит подстроку и выдаёт -1.</p>
92
-1<p>Здесь подстрока str ищется в срезе S[0:7]. Так как правая граница в срез не включается, Python не находит подстроку и выдаёт -1.</p>
93
<p>Для преобразования используются два метода:</p>
93
<p>Для преобразования используются два метода:</p>
94
<ul><li>S.upper() - преобразование всех символов строки S в верхний регистр.</li>
94
<ul><li>S.upper() - преобразование всех символов строки S в верхний регистр.</li>
95
<li>S.lower() - преобразование всех символов строки S в нижний регистр.</li>
95
<li>S.lower() - преобразование всех символов строки S в нижний регистр.</li>
96
</ul><p>И тот и другой метод возвращают новую строку, а исходная остаётся прежней.</p>
96
</ul><p>И тот и другой метод возвращают новую строку, а исходная остаётся прежней.</p>
97
<p>Например:</p>
97
<p>Например:</p>
98
S = 'Skillbox 23' print(S.upper()) # Переводит все символы в верхний регистр print(S.lower()) # Переводит все символы в нижний регистр print(S) # Проверяем значение исходной строки<p>В результате получим:</p>
98
S = 'Skillbox 23' print(S.upper()) # Переводит все символы в верхний регистр print(S.lower()) # Переводит все символы в нижний регистр print(S) # Проверяем значение исходной строки<p>В результате получим:</p>
99
SKILLBOX 23 skillbox 23 Skillbox 23<p>Если мы хотим сохранить результат, то результат выполнения метода надо присвоить новой переменной.</p>
99
SKILLBOX 23 skillbox 23 Skillbox 23<p>Если мы хотим сохранить результат, то результат выполнения метода надо присвоить новой переменной.</p>
100
<p>Для разбиения строки по разделителю используется метод S.split([разделитель [, maxsplit]]). Посмотрим на него в коде:</p>
100
<p>Для разбиения строки по разделителю используется метод S.split([разделитель [, maxsplit]]). Посмотрим на него в коде:</p>
101
S = 'Cat, Dog,Hamster Rabbit, Pig' print(S.split()) # Разделитель не задан. Метод разбивает строку по пробельным символам - пробелу и знаку табуляции print(S.split(',')) # Разбивает строку по заданному разделителю ',' print(S.split(',', 2)) # Задаёт максимальное количество разбиений, равное 3<p>Результат:</p>
101
S = 'Cat, Dog,Hamster Rabbit, Pig' print(S.split()) # Разделитель не задан. Метод разбивает строку по пробельным символам - пробелу и знаку табуляции print(S.split(',')) # Разбивает строку по заданному разделителю ',' print(S.split(',', 2)) # Задаёт максимальное количество разбиений, равное 3<p>Результат:</p>
102
['Cat,', 'Dog,Hamster', 'Rabbit,', 'Pig'] ['Cat', ' Dog', 'Hamster Rabbit', ' Pig'] ['Cat', ' Dog', 'Hamster Rabbit, Pig']<p>Методы rjust() и ljust():</p>
102
['Cat,', 'Dog,Hamster', 'Rabbit,', 'Pig'] ['Cat', ' Dog', 'Hamster Rabbit', ' Pig'] ['Cat', ' Dog', 'Hamster Rabbit, Pig']<p>Методы rjust() и ljust():</p>
103
S = 'Hi!' print(S.rjust(10,'*')) # Увеличивает длину строки до 10 и заполняет пробелы слева символами '*' print(S.ljust(10,'*')) # Увеличивает длину строки до 10 и заполняет пробелы справа символами '*'<p>В результате выполнения получим:</p>
103
S = 'Hi!' print(S.rjust(10,'*')) # Увеличивает длину строки до 10 и заполняет пробелы слева символами '*' print(S.ljust(10,'*')) # Увеличивает длину строки до 10 и заполняет пробелы справа символами '*'<p>В результате выполнения получим:</p>
104
*******Hi! Hi!*******<p>Мы рассмотрели понятия строки и текстового типа данных в Python. Подробно со всеми методами и функциями строк можно<a>ознакомиться в документации</a>.</p>
104
*******Hi! Hi!*******<p>Мы рассмотрели понятия строки и текстового типа данных в Python. Подробно со всеми методами и функциями строк можно<a>ознакомиться в документации</a>.</p>