Основы программирования на языке Python. Школа::Кода (занятие 2)

Содержание

Слайд 2

Проверка присутствия

Проверка присутствия

Слайд 3

Представление данных в языке Python

Всё в Python - есть объекты
Объект - это

Представление данных в языке Python Всё в Python - есть объекты Объект
абстракция для данных. Объект - это некоторый контейнер в памяти, который содержит данные.
Все данные в языке Python представлены объектами и отношениями между объектами:
a = 1
b = 2
c = [a, b]

Слайд 4

В языка Python у любого объекта есть три обязательные вещи: идентификатор, тип

В языка Python у любого объекта есть три обязательные вещи: идентификатор, тип
и значение. Тип и идентификатор объекта не изменяются в течение жизни объекта.
Никакие два объекта в один момент времени не обладают одинаковым идентификатором.
>>> x = [1, 2, 3]
>>> print(id(x))
51747776
>>> print(id([1, 2, 3]))
51756528

Слайд 5

Идентификатор объекта - это какое-то число.
Переменная в языке Python - это всего

Идентификатор объекта - это какое-то число. Переменная в языке Python - это
лишь ссылка на объект. Значение переменной это всегда значение объекта.
>>> x = [1, 2, 3]
>>> y = x
>>> print(y is x)
True
>>> x.append(4)
>>> print(x)
[1, 2, 3, 4]
>>> print(y)
[1, 2, 3, 4]

Слайд 6

append изменяет (изменяемый) объект, конкатенация создает новый. В следующем коде идет переопределение переменной t, а

append изменяет (изменяемый) объект, конкатенация создает новый. В следующем коде идет переопределение
не объекта, на который ссылается s.
>>> x = [1, 2, 3]
>>> y = x
>>> y.append(4)
>>> s = "123"
>>> t = s
>>> t = t + "4"
>>> print(str(x) + " " + s)
[1, 2, 3, 4] 123

Слайд 7

У любого объекта есть тип, который определяет, что можно сделать с объектом.

У любого объекта есть тип, который определяет, что можно сделать с объектом.
Тип определяет поведение объекта и возможные принимаемые значения для объекта. Тип объекта не меняется в течение жизни объекта. Узнать тип объекта можно с помощью функции type():
>>> x = [1, 2, 3]
>>> type(x)

>>> type(4)

>>> type(type(x))

list - это стандартный тип отвечающий за список в языке Python. Типы в языке Python также являются объектами. Тип типа x - это класс type.

Слайд 8

Изменяемые и неизменяемые типы
Всегда стоит помнить какие типы данных являются изменяемыми и

Изменяемые и неизменяемые типы Всегда стоит помнить какие типы данных являются изменяемыми
всегда держать в голове, если у вас несколько переменных ссылаются на один и тот же объект изменяемого типа. Это значит, что изменение какой-либо переменной, которая ссылается на этот объект повлечет изменений объекта, а как следствие и всех переменных, которые ссылаются на этот объект.

Слайд 9

Неизменяемые объекты
Immutable object - объект, который НЕ может менять свое значение. Числа (int,

Неизменяемые объекты Immutable object - объект, который НЕ может менять свое значение.
float, complex) являются неизменяемыми объектами:

Интерпретатор не всегда создает новый объект каждый раз, когда встречает новое число. Если объекта в памяти еще не было, тогда он будет создан, а если он уже был, то Python может переиспользовать старый:

Слайд 10

Логический тип bool также относится к неизменяемым типам. Для значений логического типа

Логический тип bool также относится к неизменяемым типам. Для значений логического типа
в памяти хранится всего два объекта:

Также к неизменяемым объектам относятся кортеж (tuple) и строки как последовательности символов (str). Стандартной кодировкой строк в языке Python является кодировка UTF-8. У множества есть неизменяемая версия - frozenset.

Слайд 11

Что такое множество?

Множество в python - "контейнер", содержащий не повторяющиеся элементы в

Что такое множество? Множество в python - "контейнер", содержащий не повторяющиеся элементы в случайном порядке.
случайном порядке.

Слайд 12

Изменяемые объекты
Mutable object - объект, который может изменять свое значение в течение

Изменяемые объекты Mutable object - объект, который может изменять свое значение в
своей жизни. Изменяемых стандартных типов в языке Python всего 3: список, словарь и множество. Список является изменяемым типом:

Это верно для всех изменяемых типов языка Python. Словари (dict) являются изменяемым типом данных. Множество (set) также является изменяемым типом данных

Для списков гарантируется, что когда интерпретатор встретит в коде список он создаст для него новый объект:

Слайд 13

Основные этапы в жизни любого объекта
Первым этапом является выделение памяти. Первым дело

Основные этапы в жизни любого объекта Первым этапом является выделение памяти. Первым
ищется свободная зона в памяти, где можно создать объект:

Слайд 14

Вторым этапом в жизни объекта является его создание:

Вторым этапом в жизни объекта является его создание:

Слайд 15

Объекты содержат в себе счетчик ссылок. Объекты знают сколько раз на них

Объекты содержат в себе счетчик ссылок. Объекты знают сколько раз на них ссылаются.
ссылаются.

Слайд 16

В языке Python ссылаются не только переменные. Счетчик ссылок нужен объекту для

В языке Python ссылаются не только переменные. Счетчик ссылок нужен объекту для
того чтобы понять, когда его можно удалить. После выделения памяти под объект и создания объекта следуют несколько стадий:
Первая стадия, когда на объект что-то ссылается - объект живет полноценной жизнью.
Вторая стадия, когда на объект никто не ссылается, интерпретатор помечает объект на удаление. Далее объект просто существует и ждет, когда придет сборщик мусора и удалит его. В какой-то момент времени приходит сборщик мусора, осматривает всю оперативную память, находит все помеченные объекты, удаляет объекты и освобождает ту память, которую они занимали.
После выполнения этой части кода число ссылок на объект, содержащий строку "Count me!" может быть равно 1 или 3.
s = "Count me!"
t = s
a = [s, t]
s = "Other string"
a = [s]
Имя файла: Основы-программирования-на-языке-Python.-Школа::Кода-(занятие-2).pptx
Количество просмотров: 33
Количество скачиваний: 0