# 5.1 Изучение назначения функций: abs, len, max, min, pow, round, sorted, sum, zip
Взятие модуля:
>>>abs(-6)
6
Длина списка:
>>>len([1, 2, 3])
3
Выбор максимального и минимального значения:
>>>max(5, 15)
15
>>>min (15, 12)
12
Возведение в степень:
>>>pow (5, 2)
25
Округление до целого:
>>>round (3,1514)
3
Сортировка по возрастанию (можно применить reverse = True для сортировки по убыванию):
>>> sorted ([1,2,8,-5,3])
[-5, 1, 2, 3, 8]
>>> sorted ([1,2,8,-5,3], reverse=True)
[8, 3, 2, 1, -5]
Суммирование:
>>>sum ([7, 3, 5])
15
Объединение объектов в кортеж (возвращается указатель на участок памяти):
>>> list1=[1,2,5]
>>> list1
[1, 2, 5]
@ -121,6 +135,7 @@
# 7. изучение базовых типов объектов
## 7.1 Логический тип
>>> bb1=True; bb2=False
>>> bb1,bb2
(True, False)
@ -128,6 +143,7 @@
<class'bool'>
## 7.2 Другие простые типы
>>> ii1=-1234567890
>>> ii1
-1234567890
@ -144,22 +160,26 @@
(3.67-0.45j)
## 7.3 Строка символов
>>>ss1='Это - строка символов'
>>>ss1
'Это - строка символов'
Строки можно записать и в двойные кавычки
>>>ss1="Это - строка символов"
>>>ss1
'Это - строка символов'
Внутри строк можно использовать экранированные последовательности, начинающиеся со знака \
>>>ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
>>>print(ss1a)
Это - " строка символов ",
выводимая на двух строках
Создание строки по шаблону:
>>>ss1b= 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>'
>>>print(ss1b)
Меня зовут:
@ -168,6 +188,7 @@
'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>'
Многострочные строки можно задавать в виде объекта с использованием тройных кавычек:
>>>mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
@ -177,6 +198,7 @@
имеющее более сложный тип из тех, которые участвуют в операции.
Обращение к частям строки символов с использованием индексов символов по их порядку в строке. Нумерация символов начинается с 0.
>>> ss1[0] #Это – символ «Э»
'Э'
>>> ss1[8] #Это – символ «р»
@ -195,6 +217,7 @@
' тоасм'
Указываемая правая граница в срез не включается, при отрицательном значении шага получается следующее
>>> ss1[17:3:-2]
'омсаот '
>>> ss1[-4:3:-2]
@ -203,21 +226,25 @@
'Это - строка символов'
Строка является неизменяемым объектом
>>>ss1[4]='=' # Будет диагностика!
TypeError: 'str' object does not support item assignment
Однако, можно переопределить строку
>>> ss1=ss1[:4]+'='+ss1[5:]
>>> ss1
'Это = строка символов'
Создание объекта с разными срезами исходной строки
>>>ss1b_1=ss1b[::-1]
>>>print(ss1b_1)
>ылаицини и юилимаф юовс етьватсв адюс<
:тувоз янеМ
Создание объектов разных типов
>>> type(number1)
<class'int'>
>>> number2='Число'
@ -228,6 +255,7 @@
# 8. Изучение более сложных типов объектов
## 8.1 Список
Список – это последовательность: упорядоченная по местоположению коллекция объектов произвольных типов, размер которых практически не ограничен. В отличие от символьных строк, списки являются изменяемыми последовательностями, т.е. их элементы могут изменяться с помощью операций присваивания.
>>> spis1=[111,'Spisok',5-9j] #Список с тремя элементами рахных типов
>>> spis1
[111, 'Spisok', (5-9j)]
@ -237,6 +265,7 @@
... 8,9,10] #Список можно вводить на нескольких строках
Можно использовать индексы точно также, как и сэлементами символьной строки
>>> spis1[-1]
(5-9j)
>>> stup[-8::2]
@ -246,13 +275,14 @@
[111, 'Список', (5-9j)]
Текущее число элементов
>>>len(spis1)
3
С помощью методов объектов-списков можно добавлять и удалять элементы:
>>>help(spis1.append)
Help on built-in function append:
append(object, /) method of builtins.list instance
Append object to the end of the list.
>>>spis1.append('New item') # В конец списка добавлен элемент «New item»
@ -260,10 +290,12 @@
[111, 'Список', (5-9j), 'New item']
Или по-другому конкатенация (в этой инструкции список отображается, но не сохраняется):
>>>spis1+['New item']
[111, 'Список', (5-9j), 'New item', 'New item']
Добавление в конец списка spis1 строку ss1b:
>>>spis1.append(ss1b)
>>>spis1
[111, 'Список', (5-9j), 'New item', 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>']
>>> spis2=[spis1,[4,5,6,7]] #здесь элементами являются два списка
@ -327,15 +369,18 @@
[[10, -7, 5, 4, -3], [4, 5, 6, 7]]
Обращение к элементам вложенного списка:
>>> spis2[0][1] #обращение к элементу списка spis1
-7
Изменение элемента вложенного списка:
>>> spis2[0][1]=78
>>> spis2
[[10, 78, 5, 4, -3], [4, 5, 6, 7]]
Создание объекта-списка, элементами которого будут объекты разных типов
>>> spis5 = [100, 'Test', True, spis1]
>>> spis5
[100, 'Test', True, [10, 78, 5, 4, -3]]
@ -345,9 +390,11 @@
Объект-кортеж похож на список, но его нельзя изменить – кортежи являются последовательностями, как списки, но они являются неизменяемыми, как строки. В отличие от списка литерал кортежа заключается в круглые, а не в квадратные скобки. Кортежи также поддерживают включение в них объектов различных типов и операции, типичные для последовательностей.
Создание кортежа:
>>> kort1=(222,'Kortezh',77+8j)
Кортеж нельзя изменить, но можно переопределить
>>> kort1= kort1+(1,2)
>>> kort1
(222, 'Kortezh', (77+8j), 1, 2)
@ -356,23 +403,28 @@
(222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>')
Переопределение кортежа с удалением комплексного элемента:
>>> kort2=kort1[:2]+kort1[3:]
>>> kort2
(222, 'Kortezh', 1, 2, 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>')
Определение индекса заданного элемента:
>>> kort1.index(2) # Будет получено значение 4
4
Подсчёт числа вхождений заданного элемента:
>>> kort1.count(222) #Будет получено значение 1
1
Операция замены элемента в кортеже:
>>>kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
TypeError: 'tuple' object does not support item assignment
Создание объекта-кортежа с элементами разных типов:
>>> kort3 = ("h","True", 54)
>>> kort3
('h', 'True', 54)
@ -382,13 +434,16 @@
Объект-словарь похож на ассоциативные массивы в других языках программирования. Его содержанием является совокупность пар: «ключ (key)»:«значение (value)». В качестве ключей могут использоваться неизменяемые типы объектов. Значениями могут быть объекты любого типа. Ссылка на ключ обеспечивает быстрый доступ к связанному с ним значению. В отличие от списков и кортежей совокупность элементов словаря не является упорядоченной (последовательностью). Его элементы могут изменяться с помощью операции присваивания значений.
Создание словаря:
>>> dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
Обращение к элементам словаря (не по индексам, а по ключам):
Для того, чтобы получить перечень ключей или значений из словаря следует использовать методы keys или values, создающие списки, соответственно, ключей или значений из словаря.
Упорядочение списка по ключам или по значениям:
>>> sorted(dic1.keys())
['Orel', 'Pskov', 'Saratov', 'Vologda']
>>> dic1
@ -405,25 +461,30 @@
[45, 56, 78, 145]
Элементы словаря, могут быть любого типа, в том числе и словарями:
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>'}
Создание объекта-кортежа из 7 элементов и объекта-списка с 5 элементами, создание из них словаря:
>>> kort6=('f', 'd', 's', 'a', 'l', 'k', 'j')
>>> spis6=[2,5,6,8,3]
>>> dic6=dict(zip(spis6,kort6))
>>> dic6
Как мы видим длина словаря составляет 5 объектов. Это связано с функцией zip, которая делает так, что длина итогового объекта будет соответствовать минимальной длине составляющего.
@ -431,28 +492,34 @@
Объект-множество – это неупорядоченная совокупность неповторяющихся элементов. Эти элементы могут быть разных, но только неизменяемых типов (числа, строки, кортежи).