# 5.1 Изучение назначения функций: abs, len, max, min, pow, round, sorted, sum, zip
Взятие модуля:
```py
>>> abs(-6)
6
```
Длина списка:
```py
>>> len([1, 2, 3])
3
```
Выбор максимального и минимального значения:
```py
>>> max(5, 15)
15
>>> min (15, 12)
12
```
Возведение в степень:
```py
>>> pow (5, 2)
25
```
Округление до целого:
```py
>>> round (3,1514)
3
```
Сортировка по возрастанию (можно применить reverse = True для сортировки по убыванию):
```py
>>> sorted ([1,2,8,-5,3])
[-5, 1, 2, 3, 8]
>>> sorted ([1,2,8,-5,3], reverse=True)
[8, 3, 2, 1, -5]
```
Суммирование:
```py
>>> sum ([7, 3, 5])
15
```
Объединение объектов в кортеж (возвращается указатель на участок памяти):
```py
>>> list1=[1,2,5]
>>> list1
[1, 2, 5]
>>> list2=[5,6,10]
>>> zip(list1,list2)
<zipobjectat0x000002A0E60631C0>
```
# 6. Большие и малые буквы в именах объекта
```py
>>> Gg1=45
>>> gg1
1.6
>>> Gg1
45
```
# 7. изучение базовых типов объектов
## 7.1 Логический тип
```py
>>> bb1=True; bb2=False
>>> bb1,bb2
(True, False)
>>> type(bb1)
<class'bool'>
```
## 7.2 Другие простые типы
```py
>>> ii1=-1234567890
>>> ii1
-1234567890
@ -159,37 +176,42 @@
>>> cc2=complex(a,b) #Создается комплексное число
>>> cc2
(3.67-0.45j)
```
## 7.3 Строка символов
```py
>>>ss1='Это - строка символов'
>>>ss1
'Это - строка символов'
```
Строки можно записать и в двойные кавычки
```py
>>>ss1="Это - строка символов"
>>>ss1
'Это - строка символов'
```
Внутри строк можно использовать экранированные последовательности, начинающиеся со знака \
```py
>>>ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
>>>print(ss1a)
Это - " строка символов ",
выводимая на двух строках
```
Создание строки по шаблону:
```py
>>>ss1b= 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>'
>>>print(ss1b)
Меня зовут:
<сюда вставьте свою фамилию и инициалы>
>>>ss1b
'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>'
```
Многострочные строки можно задавать в виде объекта с использованием тройных кавычек:
```py
>>>mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
@ -197,9 +219,10 @@
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
```
Обращение к частям строки символов с использованием индексов символов по их порядку в строке. Нумерация символов начинается с 0.
```py
>>> ss1[0] #Это – символ «Э»
'Э'
>>> ss1[8] #Это – символ «р»
@ -216,47 +239,52 @@
' строка '
>>> ss1[3:17:2] #Часть строки – с 3-го по 16-й индексы с шагом 2
' тоасм'
```
Указываемая правая граница в срез не включается, при отрицательном значении шага получается следующее
```py
>>> ss1[17:3:-2]
'омсаот '
>>> ss1[-4:3:-2]
'омсаот '
>>> ss1
'Это - строка символов'
```
Строка является неизменяемым объектом
```py
>>> ss1[4]='=' # Будет диагностика!
TypeError: 'str' object does not support item assignment
```
Однако, можно переопределить строку
```py
>>> ss1=ss1[:4]+'='+ss1[5:]
>>> ss1
'Это = строка символов'
```
Создание объекта с разными срезами исходной строки
```py
>>>ss1b_1=ss1b[::-1]
>>>print(ss1b_1)
>ылаицини и юилимаф юовс етьватсв адюс<
:тувоз янеМ
```
Создание объектов разных типов
```py
>>> type(number1)
<class'int'>
>>> number2='Число'
>>> type(number2)
<class'str'>
```
# 8. Изучение более сложных типов объектов
## 8.1 Список
Список – это последовательность: упорядоченная по местоположению коллекция объектов произвольных типов, размер которых практически не ограничен. В отличие от символьных строк, списки являются изменяемыми последовательностями, т.е. их элементы могут изменяться с помощью операций присваивания.
```py
>>> spis1=[111,'Spisok',5-9j] #Список с тремя элементами рахных типов
>>> spis1
[111, 'Spisok', (5-9j)]
@ -264,9 +292,10 @@
>>> spis=[1,2,3,4,
... 5,6,7,
... 8,9,10] #Список можно вводить на нескольких строках
```
Можно использовать индексы точно также, как и сэлементами символьной строки
```py
>>> spis1[-1]
(5-9j)
>>> stup[-8::2]
@ -274,14 +303,16 @@
>>> spis1[1]='Список'
>>> spis1
[111, 'Список', (5-9j)]
```
Текущее число элементов
```py
>>> len(spis1)
3
```
С помощью методов объектов-списков можно добавлять и удалять элементы:
```py
>>> help(spis1.append)
Help on built-in function append:
append(object, /) method of builtins.list instance
@ -289,53 +320,61 @@
>>> spis1.append('New item') # В конец списка добавлен элемент «New item»
>>> spis1
[111, 'Список', (5-9j), 'New item']
```
Или по-другому конкатенация (в этой инструкции список отображается, но не сохраняется):
```py
>>> spis1+['New item']
[111, 'Список', (5-9j), 'New item', 'New item']
```
Добавление в конец списка spis1 строку ss1b:
```py
>>> spis1.append(ss1b)
>>> spis1
[111, 'Список', (5-9j), 'New item', 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>']
>>> spis2=[spis1,[4,5,6,7]] #здесь элементами являются два списка
>>> spis2
[[10, -7, 5, 4, -3], [4, 5, 6, 7]]
```
Обращение к элементам вложенного списка:
```py
>>> spis2[0][1] #обращение к элементу списка spis1
-7
```
Изменение элемента вложенного списка:
```py
>>> spis2[0][1]=78
>>> spis2
[[10, 78, 5, 4, -3], [4, 5, 6, 7]]
```
Создание объекта-списка, элементами которого будут объекты разных типов
```py
>>> spis5 = [100, 'Test', True, spis1]
>>> spis5
[100, 'Test', True, [10, 78, 5, 4, -3]]
```
## 8.2 Кортежи
Объект-кортеж похож на список, но его нельзя изменить – кортежи являются последовательностями, как списки, но они являются неизменяемыми, как строки. В отличие от списка литерал кортежа заключается в круглые, а не в квадратные скобки. Кортежи также поддерживают включение в них объектов различных типов и операции, типичные для последовательностей.
Создание кортежа:
```py
>>> kort1=(222,'Kortezh',77+8j)
```
Кортеж нельзя изменить, но можно переопределить
```py
>>> kort1= kort1+(1,2)
>>> kort1
(222, 'Kortezh', (77+8j), 1, 2)
>>> kort1= kort1+(ss1b,)
>>> kort1
(222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>')
```
Переопределение кортежа с удалением комплексного элемента:
```py
>>> kort2=kort1[:2]+kort1[3:]
>>> kort2
(222, 'Kortezh', 1, 2, 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>')
```
Определение индекса заданного элемента:
```py
>>> kort1.index(2) # Будет получено значение 4
4
```
Подсчёт числа вхождений заданного элемента:
```py
>>> kort1.count(222) #Будет получено значение 1
1
```
Операция замены элемента в кортеже:
```py
>>> kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
TypeError: 'tuple' object does not support item assignment
```
Создание объекта-кортежа с элементами разных типов:
```py
>>> kort3 = ("h","True", 54)
>>> kort3
('h', 'True', 54)
```
## 8.3 Словарь
Объект-словарь похож на ассоциативные массивы в других языках программирования. Его содержанием является совокупность пар: «ключ (key)»:«значение (value)». В качестве ключей могут использоваться неизменяемые типы объектов. Значениями могут быть объекты любого типа. Ссылка на ключ обеспечивает быстрый доступ к связанному с ним значению. В отличие от списков и кортежей совокупность элементов словаря не является упорядоченной (последовательностью). Его элементы могут изменяться с помощью операции присваивания значений.
Создание словаря:
```py
>>> dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
```
Обращение к элементам словаря (не по индексам, а по ключам):
В силу неупорядоченности словаря при его выводе элементы могут располагаться не в том порядке, в каком они задавались при его формировании.
```
-В силу неупорядоченности словаря при его выводе элементы могут располагаться не в том порядке, в каком они задавались при его формировании.
Для того, чтобы получить перечень ключей или значений из словаря следует использовать методы keys или values, создающие списки, соответственно, ключей или значений из словаря.
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n <сюда вставьте свою фамилию и инициалы>'}
```
Создание объекта-кортежа из 7 элементов и объекта-списка с 5 элементами, создание из них словаря:
```py
>>> kort6=('f', 'd', 's', 'a', 'l', 'k', 'j')
>>> spis6=[2,5,6,8,3]
>>> dic6=dict(zip(spis6,kort6))
>>> dic6
```
Как мы видим длина словаря составляет 5 объектов. Это связано с функцией zip, которая делает так, что длина итогового объекта будет соответствовать минимальной длине составляющего.
@ -493,34 +550,35 @@
Объект-множество – это неупорядоченная совокупность неповторяющихся элементов. Эти элементы могут быть разных, но только неизменяемых типов (числа, строки, кортежи).