Разделы презентаций


Москва, 2018 Информационные технологии Основы программирования на Python 3 Каф

Содержание

Лекция 3. Типы данных Часть 2. Сложные типы данныхСписки (Lists) и Кортежи (Tuples)Словари (Dictionaries)Множества (Sets)Фиксированные множества (Frozen sets)Байты (Bytes)Массивы байтов (Byte Arrays)Прочие типы данных

Слайды и текст этой презентации

Слайд 1Москва, 2018
Информационные
технологии
Основы
программирования
на Python 3
Каф. ИКТ РХТУ им.

Д.И. Менделеева Ст. преп. Васецкий А.М.

Москва, 2018Информационные технологииОсновы программирования на Python 3Каф. ИКТ РХТУ им. Д.И. Менделеева Ст. преп. Васецкий А.М.

Слайд 2Лекция 3. Типы данных
Часть 2.
Сложные типы данных
Списки (Lists)

и Кортежи (Tuples)
Словари (Dictionaries)
Множества (Sets)
Фиксированные множества (Frozen sets)
Байты (Bytes)
Массивы байтов

(Byte Arrays)
Прочие типы данных
Лекция 3. Типы данных Часть 2. Сложные типы данныхСписки (Lists) и Кортежи (Tuples)Словари (Dictionaries)Множества (Sets)Фиксированные множества (Frozen

Слайд 31. Списки и кортежи
Кортежи (tuple) и списки (list) могут содержать

ноль или более элементов разных типов.
Фактически каждый элемент может

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

Примечание. В других языках программирования для подобного типа данных иногда встречается термин "Коллекция"
1. Списки и кортежиКортежи (tuple) и списки (list) могут содержать ноль или более элементов разных типов. Фактически

Слайд 4Создание списков
Список можно создать из нуля или более элементов, разделенных

запятыми и заключенных в квадратные скобки
empty_list = [ ]
weekdays =

["Пн", "Вт", "Ср", "Чт", "Пт"]
animals = ["ёж", "уж", "лис"]
names = ["Яна", "Юля", "Яна", "Лена"]
или с помощью функции list()
empty_list = list()
создание списка при помощи разбиения:
splitme = "a/b//c/d///e"
splitme.split("/") # ["a", "b", "", "c", "d", "", "", "e"]

Примечание: Если требуется рассмотреть только уникальные значения, то лучше воспользоваться множеством (set)
Создание списковСписок можно создать из нуля или более элементов, разделенных запятыми и заключенных в квадратные скобкиempty_list =

Слайд 5Запятая в конце списка
Запятая помогает устранить определенный тип ошибок. Иногда

бывает проще писать списки на нескольких строках. Но, затем потребуется

переупорядочить предметы. Если написали
L1 = [
1,
2,
3,
4,
5
] # и хотите перетасовать строки…
L1 = [
1,
2,
3,
5
4,
] # то получите ошибку

L1 = [
1,
2,
3,
4,
5,
]

Так более оптимально

Запятая в конце спискаЗапятая помогает устранить определенный тип ошибок. Иногда бывает проще писать списки на нескольких строках.

Слайд 6Функция list()
Функция list() преобразует другие типы данных в списки.
Пример:

Разбиваем строку
list("кот") # ['к', 'о', 'т']
mylist = list("one", "two") #

ОШИБКА

Преобразование кортежа в список
my_tuple = ("раз", "два", "три")
list(my_tuple) # ['раз', 'два', 'три']

Функция list()Функция list() преобразует другие типы данных в списки. Пример: Разбиваем строкуlist(

Слайд 7Получение элементов списков
Получение одного элемента списка:
list_names = ["Юля", "Яна", "Лена"]
list_names[0]

# 'Юля'
list_names[-1] # "Лена"
list_names[3] # ОШИБКА
Изменение элемента списка:
list_names[0] = "Таня"

Получение элементов списковПолучение одного элемента списка:list_names = [

Слайд 8Копирование списков
Копирование списков
list_names = ["Юля", "Яна", "Лена"]
l_names = list_names

# это будет ссылка!
l_names[1] = "Женя" # изменит оба списка!
list_names #

['Юля', 'Женя', 'Лена']
l_names # ['Юля', 'Женя', 'Лена']
l_names = list_names.copy() # копия
l_names[1] = "Женя" # изменит только l_names
list_names # ['Юля', 'Яна', 'Лена']
l_names # ['Юля', 'Женя', 'Лена']
Альтернативно копирование выполняется:
c = list(list_names )
d = list_names[:]
Повторение списка:
my_list = [1, 2, 3] * 2 # [1, 2, 3, 1, 2, 3]





Копирование списковКопирование списковlist_names = [

Слайд 9Вложенные списки
Списки могут содержать элементы различных типов, включая другие списки.
Пример:
list_a

= ["раз", "два", "три"]
list_b = ["0", "1", "2", "3"]
list_c =

["one", "two", "three", "four"]
Вложенный список:
lst =[list_a, list_b, "список", list_c, [0, 1, 2], 7]
Его элементы:
lst[0] # ['раз', 'два', 'три']
lst[0][2] # 'три'
lst[4][0] # 0
lst[2][2] # 'и'
lst[5][2] # ОШИБКА
Вложенные спискиСписки могут содержать элементы различных типов, включая другие списки.Пример:list_a = [

Слайд 10Повторение вложенных списков
mylist = [[]] * 5 # [[], [],

[], [], []]
Однако при этом операция:
mylist[0].append(1) # [[1], [1], [1],

[1], [1]]

Несколько забегая вперёд, лучше конструкция вида
mylist = [[] for _ in range(5)] # [[], [], [], [], []]
mylist[0].append(1) # [[1], [], [], [], []]

Повторение вложенных списковmylist = [[]] * 5 	# [[], [], [], [], []]Однако при этом операция:mylist[0].append(1) 	#

Слайд 11Бесконечно вложенный список
a = [1, 2, 3, 4]
a.append(a) # [1,

2, 3, 4, [...]]
a[4] # [1, 2, 3, 4, [...]]
a[4][4][4][4][4][4][4][4][4][4]

== a # True
Бесконечно вложенный списокa = [1, 2, 3, 4]a.append(a) 		# [1, 2, 3, 4, [...]]a[4] 				# [1, 2,

Слайд 12Операции со списками
Разделение списков
my_list = [0, 10, 20, 30]
my_list[0:2] #

[0, 10]
my_list[2:] # [20, 30]
my_list[::2] # [0, 20]
my_list[::-1] # [30, 20, 10,

0]

Операции со спискамиРазделение списковmy_list = [0, 10, 20, 30]my_list[0:2] 	# [0, 10]my_list[2:] 		# [20, 30]my_list[::2]		# [0, 20]my_list[::-1]	#

Слайд 13Методы списков
[…, 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop',

'remove', 'reverse', 'sort']

Методы списков[…, 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

Слайд 14Примеры
my_list = [0, 10]
my_list.append(30) # [0, 10, 30] – добавили
my_list.append([1,

2]) # [0, 10, [1, 2]]
Слияние двух списков
my_list.extend([1, 2]) #

[0, 10, 1, 2]
my_list+= [1, 2] # [0, 10, 1, 2]
Вставка списка
my_list.insert(0, [1, 2]) # [[1, 2], 0, 10]
my_list.insert(10, [1, 2]) # [0, 10, [1, 2]]
Индекс первого вхождения элемента
my_list = [0, 10, 20, 10]
my_list.index(10) # 1
my_list.index(10, 2) # 3
Количество включений
my_list.count(10) # 2

Примерыmy_list = [0, 10]my_list.append(30) 		# [0, 10, 30] – добавилиmy_list.append([1, 2]) 	# [0, 10, [1, 2]]Слияние двух

Слайд 15Примеры
my_list = [0, 10]
Длина списка
len(my_list) # 2
Проверка нахождения элемента в

списке
10 in my_list # True
Объединение элементов списка (строки)
my_list = ["a",

"b", "c"]
", ".join(my_list) # "a, b, c"
Сортировка
my_list.sort(reverse=True) # ['c', 'b', 'a']
Сортировка по ключевой функции
my_list = ["aa", "b", "ccc"]
key – в данном случае отвечает за вычисление длины строки. Используется лямбда-функция.
my_list.sort(key=lambda x: len(x)) # ['b', 'aa', 'ccc']
Примерыmy_list = [0, 10]Длина спискаlen(my_list) 			# 2Проверка нахождения элемента в списке10 in my_list 			# TrueОбъединение элементов списка

Слайд 16Примеры сортировки
mylist = [0, 2, 1, 9, 7]
mylist.sort() # [0, 1,

2, 7, 9]
mylist.sort(reverse=True) # [9, 7, 2, 1, 0]
mylist =

[0, 2, 1, 9, 7]
mylist.reverse # [0, 2, 1, 9, 7]
mylist.reverse () # [7, 9, 1, 2, 0]
mylist = [0, "20", 1, "t", 7]
mylist.sort() # ОШИБКА
mylist = ["0", "20", "1", "9", "70"]
mylist.sort() # ['0', '1', '20', '70', '9']
mylist = mylist.sort() # None




Примеры сортировкиmylist = [0, 2, 1, 9, 7]mylist.sort()			# [0, 1, 2, 7, 9]mylist.sort(reverse=True) 	# [9, 7, 2,

Слайд 17Удаление элементов из списка
my_list = [0, 10, 20, 30]
Удаление элемента

списка по индексу (del)
del my_list[1] # [0, 20, 30]
del my_list[1:3] #

[0, 30]
del my_list[:] # очистка списка
my_list.clear() # очистка списка
Удаление по значению
my_list.remove(2) # ОШИБКА
my_list.remove(20) # [0, 10, 30]
Извлечение элемента из списка
ex = my_list.pop() # ex=30, my_list = [0, 10, 20]
ex = my_list.pop(0) # ex=0, my_list = [10, 20, 30]
Можно воспользоваться модулем collections
https://docs.python.org/3/tutorial/datastructures.html


Удаление элементов из спискаmy_list = [0, 10, 20, 30]Удаление элемента списка по индексу (del)del my_list[1] 		# [0,

Слайд 18Кортежи (Tuples)
Кортежи, как и списки, являются последовательностями произвольных элементов.
В

отличие от списков кортежи неизменяемы
Создание кортежей
mytuple = () # пустой кортеж
mytuple

= ("a", ) # один или более элементов
mytuple = ("a", "b", "c") # больше 1 элемента
mytuple = "a", "b", "a" # скобки не обязательны
mytuple = ("s") # s – строка!
mytuple = ("s",) # ('s',) – кортеж
Преобразование в кортеж
mytuple = tuple([0, 1, 7]) # (0, 1, 7)
Можно изменять составляющие элементы
mytuple = ([1, 2, 3], [3, 2, 1])
mytuple[0][0] = 7 # ([7, 2, 3], [3, 2, 1])

Кортежи (Tuples)Кортежи, как и списки, являются последовательностями произвольных элементов. В отличие от списков кортежи неизменяемыСоздание кортежейmytuple =

Слайд 19Распаковка кортежа
Распаковка кортежа
mytuple = ("a", "b", "c")
a, b, c =

mytuple # a='a', b='b', c='c'
mytuple = ("a", "b", "c", "d",

"e", "f")
Если при присваивании значений их окажется больше переменных – можно добавить в начало имени переменной (*) и ей будут присвоены остальные переменные.
first, second,*rest = mytuple
print(first, second, rest) # a b ['c', 'd', 'e', 'f']
Распаковка кортежаРаспаковка кортежаmytuple = (

Слайд 20Методы кортежей
[…'count', 'index']
mytuple = ("a", "b", "a")
mytuple.index("a") # 0 –

первое вхождение
mytuple.count("a") # 2 – количество вхождений

Методы кортежей[…'count', 'index']mytuple = (

Слайд 21Особенности кортежей
Кортежи занимают меньше места, чем списки
Кортежи можно использовать в

качестве ключей словаря (см. дальше)
Именованные кортежи могут служить более простой

альтернативой объектам.
Аргументы функции передаются как кортежи
Особенности кортежейКортежи занимают меньше места, чем спискиКортежи можно использовать в качестве ключей словаря (см. дальше)Именованные кортежи могут

Слайд 22Словари (Dictionary)
Словарь похож на список. Но адресация элементов в нём

обеспечивается идентификаторами-ключами.
Ключ может являться булевой переменной, целым числом, числом с

плавающей точкой, кортежем, строкой и другими объектами
Словарь – изменяемый элемент. Можно добавлять, удалять и изменять его элементы.
В Python допускается наличие запятой после последнего элемента списка, кортежа или словаря.
В других языках программирования словари могут называться ключевыми массивами, ассоциативными массивами, хешами или хеш-таблицей
Словари (Dictionary)Словарь похож на список. Но адресация элементов в нём обеспечивается идентификаторами-ключами.Ключ может являться булевой переменной, целым

Слайд 23Создание словаря
Словарь обозначается фигурными скобками {}
d = {} # пустой

словарь
d ={"Sub":"Hg", "Property":"Metal"}
"Sub", "Property" – ключи
d = {"key1": 1, "key2":

2} # {'key1': 1, 'key2': 2}
Использование метода setdefault
d.setdefault("key4", 5) # {'key1': 1, 'key2': 2, 'key4': 5}
d.setdefault("key1", 5) # {'key1': 1, 'key2': 2}
e = d.setdefault("key4", 5) # 5
e = d.setdefault("key1", 5) # 1
Создание словаря по ключам
d = dict(sh="d", lng="di") # {'sh': 'd', 'lng': 'di'}
С помощью метода fromkeys
mydict = dict.fromkeys(["a", "b"], 1) # {'a': 1, 'b': 1}
d = dict.fromkeys (["a", "b"] # {'a': None, 'b': None}



Создание словаряСловарь обозначается фигурными скобками {}d = {} 		# пустой словарьd ={

Слайд 24Словари из списков и кортежей
Создание словаря из списка списков
rawlist =

[["a", "b"], ["c", "d"], ["e", "f"]]
d = dict(rawlist) # {'a':

'b', 'c': 'd', 'e': 'f'}
из списка кортежей:
rawlist = [("a", "b"), ("c", "d"), ("e", "f")]
d = dict(rawlist) # {'a': 'b', 'c': 'd', 'e': 'f'}
из кортежа списков:
rawtuple = (["a", "b"], ["c", "d"], ["e", "f"])
d = dict(rawtuple) # {'a': 'b', 'c': 'd', 'e': 'f'}
Список строк
s = ["ab", "cd", "ef"]
d = dict(s) # {'a': 'b', 'c': 'd', 'e': 'f'}
Кортеж строк
s = ("ab", "cd", "ef")
d = dict(s) # {'a': 'b', 'c': 'd', 'e': 'f'}

Словари из списков и кортежейСоздание словаря из списка списковrawlist = [[

Слайд 25Бесконечно вложенный словарь
a = {}
b = {}
a["b"]

= b
b["a"] = a
print(a) # {'b': {'a': {...}}}


Слайд 26Методы словаря
[… 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem',

'setdefault', 'update', 'values']

Методы словаря[… 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

Слайд 27Примеры
d = {"key1": 1, "key2": 2}
Замена значения
d["key1"] = 8 #

{'key1': 8, 'key2': 2}
Слияние словарей
e = {"key3": 3, "key1": 9}

# второй словарь
d.update(e) # {'key1': 9, 'key2': 2, 'key3': 3}
Удаление одного элемента словаря
d = {"key1": 1, "key2": 2}
del d["key1"] # {'key2': 2}
Очистка словаря
d.clear() # {} Внимание! d.clear – не сработает!
Проверка наличия
d = {"key1": 1, "key2": 2}
"key1" in d # True – такой ключ есть
2 not in d # True – такого ключа нет


Примерыd = {

Слайд 28Примеры
Получение значения из словаря
d = {"key1": 1, "key2": 2}
d["key1"] # 1
d["key4"] #

ОШИБКА
d.get("key1") # 1
d.get("key4") # None
d.get("key1", "default") # 1
d.get("key4", "default") # default
Получение всех

ключей
allkeys = list(d.keys()) # ['key1', 'key2']
Получение всех значений
allvalues = list(d.values()) # [1, 2]
Получение всех пар «ключ – значение»
Каждая пара будет возвращена как кортеж:
allpairs = list(d.items()) # [('key1', 1), ('key2', 2)]

ПримерыПолучение значения из словаряd = {

Слайд 29Примеры
Копирование
d = {"key1": 1, "key2": 2}
e = d # передаётся

ссылка!
d["key1"] = 9 # изменяет и словарь e
# d, e: {'key1':

9, 'key2': 2} {'key1': 9, 'key2': 2}
e = d.copy() # создаём копию словаря
d["key1"] = 9
# d, e: {'key1': 9, 'key2': 2} {'key1': 1, 'key2': 2}
Извлечение элемента из словаря
e = d.pop("key1") # d, e: {'key2': 2} 1
e = d.pop("key4", "d") # d,e: {'key1': 1, 'key2': 2} d
d = {"key1": 1, "key2": 2, "key3": 3, "key4": 4}
e = d.popitem()
# d,e: {'key1': 1, 'key2': 2, 'key3': 3} ('key4', 4)


ПримерыКопированиеd = {

Слайд 30Функция defaultdict
Функция определяет значение по умолчанию для новых ключей при

создании словаря
Аргументом defaultdict() является функция, возвращающая значение для отсутствующего

ключа
from collections import defaultdict def fun(): # Функция для значения по умолчанию return "Что?" d = defaultdict(fun) d["key1"] = "A" # добавляем элемент d["key2"] = "B" # добавляем элемент e = d["key3"] # запрашиваем отсутствующий элемент. В ответ получаем: "Что?"
Допустимо использовать функции int(), list(), dict(), чтобы возвращать пустые значения по умолчанию: int() возвращает 0, list() – пустой список ([]), а dict() – пустой словарь ({}). Если опустить аргумент, исходное значение нового ключа будет None.
e = defaultdict(lambda: "Что?") # лямбда-функция
Функция defaultdictФункция определяет значение по умолчанию для новых ключей при создании словаря Аргументом defaultdict() является функция, возвращающая

Слайд 31Множества (Set)
Множество похоже на словарь, но имеет только ключи, а

значения опущены.
Ключи должны быть уникальными.
Порядок ключей не имеет значения.
Создание

пустого множества
empty_set = set()
Примеры создания множеств:
set("text") # {'t', 'e', 'x'}
из списка
d = set(["Раз", "Два", "Два", "Три"])
# {'Два', 'Раз', 'Три'} (порядок может меняться)
из кортежа
d= set(("Раз", "Два", "Два", "Три"))
# {'Два', 'Раз', 'Три'} (порядок может меняться)
d= set({"a":1, "b": 2, "c": 3}) # {'c', 'b', 'a'}

Множества (Set)Множество похоже на словарь, но имеет только ключи, а значения опущены. Ключи должны быть уникальными.Порядок ключей

Слайд 32Пересечение, объединение и разница множеств. Графическое представление

Пересечение, объединение и разница множеств.  Графическое представление

Слайд 33Комбинации и операторы
d = set(["a", "b", "c"])
e = set(["c", "d",

"e"])
пересечение множеств (&, intersection):
f = d & e # {'c'}
g

= d.intersection(e) # {'c'}
объединение множеств ( |, union)
f = d | e # {'b', 'a', 'd', 'c', 'e'}
g = d.union(e) # {'b', 'a', 'd', 'c', 'e'}
Разность множеств (члены только первого множества, но не второго) ( –, difference)
f = d – e # {'a', 'b'}
g = d.difference(e) # {'a', 'b'}
Комбинации и операторыd = set([

Слайд 34Комбинации и операторы
d = set(["a", "b", "c"])
e = set(["c", "d",

"e"])
исключающее ИЛИ (элементы или первого, или второго множества, но не

общие)
(^ , symmetric_difference())
f = d ^ e # {'b', 'd', 'e', 'a'}
g = d.symmetric_difference(e) # {'b', 'd', 'e', 'a'}

Комбинации и операторыd = set([

Слайд 35Свойства множеств
[…'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint',

'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
Длина множества
d =

set(["a", "b", "c"])
len(d) # 3

Свойства множеств[…'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union',

Слайд 36Свойства множеств

Свойства множеств

Слайд 37Свойства множеств

Свойства множеств

Слайд 38Отношения между множествами
Является ли одно множество подмножеством другого (все члены

первого множества являются членами второго) (

одно множество является надмножеством второго (>=, issuperset())
d = set(["a", "b", "c"])
h = set(["a", "b"])
g1 = h.issubset(d) # True То же: g1 = h<=d
g2 = h.issuperset(d) # False То же: g2 = h>=d
g3 = d.issubset(h) # False То же: g3 = d<=h
g4 = d.issuperset(h) # True То же: g4 = h<=d
Собственное подмножество (<). Эквивалентно A <= B and A != B
Собственное множество множеств (>) Эквивалентно A >= B and A != B



Отношения между множествамиЯвляется ли одно множество подмножеством другого (все члены первого множества являются членами второго) (=, issuperset())d

Слайд 39Действия над множествами
Добавление элемента во множество:
d = set(["a1", "b2", "c3"])
d.add("d4") #

{'a1', 'b2', 'c3', 'd4'}
Проверка наличия элемента:
e = "a" in d

# False
e = "b2" in d # True
Удаление элемента из множества:
d.remove("a1") # {'b2', 'c3', 'd4'}
d.discard("b2") # {'c3', 'd4'}
Метод discard() не выдает ошибку, если элемента нет во множестве в отличие от метода remove().



Действия над множествамиДобавление элемента во множество:d = set([

Слайд 40Тип frozenset
set – изменяемый тип данных, а frozenset –

нет. Примерно схожая ситуация со списками и кортежами.

b = frozenset("текст")
b.add(1)

# ОШИБКА
Тип frozenset set – изменяемый тип данных, а frozenset – нет. Примерно схожая ситуация со списками и

Слайд 41Бинарные типы данных
В Python 3 появились последовательности восьмибитных целых чисел,

имеющих возможные значения от 0 до 255. Они могут быть

двух типов:
bytes – неизменяем, как кортеж байтов
bytearray – изменяем, как список байтов
Бинарные типы данныхВ Python 3 появились последовательности восьмибитных целых чисел, имеющих возможные значения от 0 до 255.

Слайд 42Тип bytes – неизменяемая последовательность байтов
объекты типа bytes являются последовательностями

коротких целых чисел, каждое из которых имеет значение в диапазоне

от 0 до 255, которые могут выводиться как символы ASCII.
Этот тип поддерживает обычные операции над последовательностями и большинство строковых методов, доступных для объектов типа str
bytes – можно назвать кортежем байтов
Тип bytes – неизменяемая последовательность байтовобъекты типа bytes являются последовательностями коротких целых чисел, каждое из которых имеет

Слайд 43Представление значений типа bytes
Представление значения типа bytes начинается с символа

b и кавычки. Далее следуют шестнадцатеричные последовательности или символы ASCII.

Завершается конструкция тоже символом кавычки.
Примеры:
b"\x61" # b'a'
b"\x01abc\xff" # b'\x01abc\xff'
b = [1, 0, 3, 255]
bt = bytes(b) # b'\x01\x00\x03\xff'
print(bt[2]) # 3
bt[1] = 1 # ОШИБКА!
Представление значений типа bytesПредставление значения типа bytes начинается с символа b и кавычки. Далее следуют шестнадцатеричные последовательности

Слайд 44Применение типа bytes
тип bytes не поддерживает метод format и оператор

% форматирования, и нельзя смешивать и сопоставлять объекты типов bytes

и str, не выполняя явное преобразование.
для представления текстовых данных в подавляющем большинстве случаев используются объекты типа str и текстовые файлы, а для представления двоичных данных – объекты типа bytes и двоичные файлы
Применение типа bytesтип bytes не поддерживает метод format и оператор % форматирования, и нельзя смешивать и сопоставлять

Слайд 45bytearray – изменяемая последовательность байтов
b = [1, 0, 3, 255]
ba

= bytearray(b)
ba[1] = 7 # bytearray(b'\x01\x07\x03\xff')
При выводе на экран переменных

типа bytes или bytearray используется формат \x xx для непечатаемых байтов и их эквиваленты ASCII для печатаемых (за исключением распространенных управляющих последовательностей вроде \n вместо \x0a).
bytearray – изменяемая последовательность байтовb = [1, 0, 3, 255]ba = bytearray(b)ba[1] = 7 		# bytearray(b'\x01\x07\x03\xff')При выводе

Слайд 46Библиотеки для работы с бинарными данными
Стандартная библиотека содержит модуль struct,

который обрабатывает данные аналогично структурам в С/С++.
С помощью этого

модуля можно преобразовать бинарные данные в структуры данных Python и наоборот.
Другие библиотеки для работы с бинарными данными
bitstring (http://bit.ly/py-bitstring);
construct (http://bit.ly/py-construct);
hachoir (http://bit.ly/hachoir-pkg);
binio (http://spika.net/py/binio/).
Библиотеки для работы с бинарными даннымиСтандартная библиотека содержит модуль struct, который обрабатывает данные аналогично структурам в С/С++.

Слайд 47Прочие типы данных
NоnеTуре – объект со значением None
NotImplemented – объект

этого типа возвращается при сравнении несравнимых объектов.
Ellipsis (…) – это

объект, который может появляться в нотации среза многомерного массива (например при использовании библиотеки NumPy).
a[5,:,:,1] эквивалентен a[5,...,1]
См. также:
http://rupython.com/python-ellipsis-706.html
https://habr.com/ru/post/123821/
Прочие типы данныхNоnеTуре – объект со значением NoneNotImplemented – объект этого типа возвращается при сравнении несравнимых объектов.Ellipsis

Слайд 48Спасибо за внимание

Спасибо за внимание

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика