Строка - это последовательность пронумерованных символов. Строковые значения в Python имеют тип str.
Каждый символ в строке обладает порядковым номером - индексом. Нумерация символов начинается с 0 (слева направо).
Оператор индексирования [<индекс>]:
Значения в строковом типе - не изменяемы. Нельзя заменить отдельные символы, обратившись к ним по индексу:
Длина строки - количество символов в ней, включая пробелы.
Строка может быть пустой - длина будет равна 0:
Для получения подстроки используется оператор среза - [<начало>:<конец>].
Если пропустить и <начало> и <конец>, то получим копию строки:
Общая форма записи оператора среза: [<начало>:<граница>:<шаг>]:
Сложение строковых значений называется конкатенацией:
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 и его методов.