Строка - это последовательность пронумерованных символов. Строковые значения в Python имеют тип str.
Каждый символ в строке обладает порядковым номером - индексом. Нумерация символов начинается с 0 (слева направо).
Чтобы обратиться к символу по его индексу используется оператор индексирования [<индекс>]:
Значения в строковом типе - не изменяемы. Нельзя заменить отдельные символы, обратившись к ним по индексу:
Под длинной строки будем понимать количество символов в ней, включая пробелы.
Стоит учитывать, что строка может быть пустой. В таком случае, её длина будет равна 0:
Для того, чтобы получить подстроку в Python используется оператор среза - [<начало>:<конец>].
Если пропустить и <начало> и <конец>, то получим копию строки:
Общая форма записи оператора среза: [<начало>:<граница>:<шаг>]. Последнее значение определяет с каким шагом нужно брать символы из строки:
К строковым значениям применимы два арифметических оператора - сложение и умножение.
Сложение строковых значений называется конкатенацией:
inС помощью оператора in можно выяснить входит ли подстрока в строку:
strВсе строковые значения являются объектами класса str. В этом можно убедится с помощью функции type(), которая возвращает тип аргумента:
Класс str обладает рядом методов, которые упрощают обработку строк.
str
| Метод | Назначение |
|---|---|
s.count(sub) |
Количество вхождений подстроки sub в строку s |
s.find(sub) |
Находит индекс первого вхождения подстроки sub в строку s |
s.replace(old, new) |
Заменяет подстроку old на new; возвращает новую строку |
s.upper() |
Преобразование всех символов в прописные; возвращает новую строку |
s.lower() |
Преобразование всех символов в строчные; возвращает новую строку |
Вот примеры использования этих методов:
| Инструкции и операторы | Назначение |
|---|---|
+ |
Конкатенация |
* |
Повторение |
<строка>[] |
Индексирование |
<строка>[ : ] |
Срез |
len(<строка>) |
Длина строки |
in, not in |
Нахождение в строке |
for <символ> in <строка> |
Перебор символов |
mess[3]mess[1:4]mess[:6]mess[:]'!' in messmess.count('а')mess.upper()mess[-1]Список - это набор упорядоченных и пронумерованных элементов. В Python списки имеют тип list.
Элементы списка пронумерованы и к ним можно обращаться по их индексу. Нумерация элементов списка начинается с нуля.
Получить элемент списка по его индексу можно с помощью оператора [<индекс>].
Элементами списка могут быть другие списки.
С помощью функции len() можно узнать количество элементов в списке:
Чтобы получить часть списка используется оператор среза [:]. Со списками оператор среза работает также, как и для строковых значений:
Списки можно складывать между собой.
inС помощью операторов in и not in можно определить есть ли в списке указанный элемент:
С помощью метода split() можно разделить строку и получить список подстрок.
Метод split() принимает в качестве аргумента разделитель строки:
Метод класса join() объединяет элементы списка в одну строку.
listlist
| Метод | Назначение |
|---|---|
<список>.append(x) |
Добавление x в конец списка |
<список>.sort() |
Сортировка списка |
<список>.insert(i, x) |
Вставка в список элемента x по индексу i |
<список>.count(x) |
Получение количества повторений x в списке |
<список>.pop()<список>.pop(i) |
Удаление из списка последнего или i-го элемента и возврат его значения |
Рассмотрим пример применения некоторых методов:
| Инструкции и операторы | Значение |
|---|---|
+ |
Конкатенация |
* |
Повторение |
<список>[] |
Индексирование |
<список>[:] |
Срез |
len(<список>) |
Количество элементов |
for <элемент> in <список> |
Перебор символов |
<выражение> in <список> |
Проверка принадлежности (Boolean) |
lst[3]lst[1:3]10 in lstАбстрактный тип данных (АТД) - это тип данных, интерфейс взаимодействия с которым определён без наличия конкретной реализации на языке программирования.
АТД содержит описание типа элементов, хранящихся в АТД и набор операций над ними. Описание операций производится через входные и выходные данные.
АТД не определяет то, какой будет реальная программная реализация. Детали программной реализации скрыты от пользователя АТД.
Контейнер - это структура данных для которой строго определён порядок добавления новых элементов а также их извлечения.
Стек - это абстрактный тип данных, элементы в котором можно добавлять или извлекать только из одного конца - вершины стека.
Стек работает по принципу “Первым пришёл - последним ушёл”.
StackStack
| Метод/Свойство | Назначение |
|---|---|
push(el) |
Метод добавляет el на вершину стека. |
pop() |
Метод удаляет элемент с вершины стека и возвращает его. |
peek() |
Метод возвращает элемент с вершины стека не удаляя его. |
size() |
Метод возвращает количество элементов в стеке. |
Работу стека можно реализовать с помощью типа list и его методов.
Очередь - абстрактный тип данных, элементы в который добавляются с одного конца а извлекаются из другого.
Очередь работает по принципу “Первым пришёл - первым вышел”.
QueueQueue
| Метод/Свойство | Назначение |
|---|---|
enqueue(el) |
Метод добавляющий el в конец очереди. |
dequeue() |
Метод удаляет элемент из начала очереди и возвращает его. |
peek() |
Метод возвращает элемент из начала очереди но не удаляет его. |
size() |
Метод возвращает количество элементов в очереди. |
Работу очереди так же можно реализовать с помощью типа list и его методов.