Сравнить коммиты

..

3 Коммитов

7 изменённых файлов: 7 добавлений и 507 удалений

Просмотреть файл

@@ -1,6 +1,7 @@
# Программное обеспечение автоматизированных систем: лабораторные работы # Программное обеспечение автоматизированных систем: лабораторные работы
[Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/python) [Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/python)
Обратите внимание на файл с комментариями в репозитории по ссылке.
## Работа с Git ## Работа с Git
@@ -86,7 +87,7 @@
## 1.1 Настройка текущего каталога ## 1.1 Настройка текущего каталога
``` ```py
>>> import os >>> import os
>>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1") >>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1")
>>> os.getcwd() >>> os.getcwd()
@@ -109,7 +110,7 @@
### Оформление решений ### Оформление решений
Решение всех заданий оформляется по образцу: Решение всех заданий и тестов оформляется по образцу:
# Общее контрольное задание по теме 2 # Общее контрольное задание по теме 2
@@ -129,5 +130,8 @@
Для темы 1 вместо «Задания» — «Вопрос», вместо «Решения» — «Ответ». Для темы 1 вместо «Задания» — «Вопрос», вместо «Решения» — «Ответ».
Для тем 3, 6 и 9 вместо «Индивидуального контрольного задания по теме 3 (6, 9)» —
«Тест по модулю 1 (2, 3)».
Для тем 8 и 9 раздела «Решение» не нужно, Для тем 8 и 9 раздела «Решение» не нужно,
вместо этого решение размещается в отдельных файлах `*.py`. вместо этого решение размещается в отдельных файлах `*.py`.

Просмотреть файл

@@ -6,7 +6,7 @@
## 1.1 Настройка текущего каталога ## 1.1 Настройка текущего каталога
``` ```py
>>> import os >>> import os
>>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1") >>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1")
>>> os.getcwd() >>> os.getcwd()

Просмотреть файл

@@ -1,5 +0,0 @@
#Программа по Теме 1 Соловьёва Е.Д,
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA1')

Просмотреть файл

@@ -1,86 +0,0 @@
# Отчет по теме 1
Соловьёва Екатерина, А-01-23
## 1.Создание копии репозитория
```py
$ git clone http://uit.mpei.ru/git/Solovyova_ED/python-labs.git
```
## 1.1 Клонирование форка на рабочий стол, перебазирование личного форка на исходный репозиторий
```py
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git remote add upstream http://uit.mpei.ru/git/main/python-labs.git
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git fetch upstream
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 5), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), 745 bytes | 32.00 KiB/s, done.
From http://uit.mpei.ru/git/main/python-labs
* [new branch] main -> upstream/main
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git stash push
No local changes to save
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git rebase upstream/main
Successfully rebased and updated refs/heads/main.
Ekaterina@Ekaterina-PC MINGW64 ~/Desktop/python-labs (main)
$ git stash pop
No stash entries found.
```
## 2. Запуск Питона
## 2.1. Изучение диалогового окна интерпретатора
```py
print("Hello") Hello
h=input("Your name=") Your name=Katerina
exit()
```
## 3. Ввод интрукций настройки рабочего каталога среды
```py
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\python-labs\\TEMA1')
```
## 4.Создание файла "Программа по теме 1", её запуск
#Программа по Теме 1 Соловьёва Е.Д.
```py
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\Ekaterina\\OneDrive\\Desktop\\python-labs\\TEMA1')
```
## 5. Запуск программы prb1.py из рабочего каталога
## 5.1 Попытка открыть файл Pr0.cpython-311 из каталога pycache.
При попытке открыть файл в текстовом редакторе человек вместо привычных букв увидит странные символы и/или надписи NUL. Так происходит из-за того, что информация записана в двоичном коде. Компиляция программ происходит для преобразования текста в машинный код, оптимизации.
## 6. Создание файла "Протокол по теме 1"
## 6.1 Изучение раздела Help.
В одной строке можно ввести несколько инструкций, разделяя их точками с запятой например:
```py
help(print); help(input)
```
В этом разделе можно найти актуальную информацию про IDLE, по типу версии, обновлений, лицензии. Так же здесь присутствует краткий гайд для использования программы. В наличии так же демо-версия программы TURTLE и справочник по Python. Посмотреть справочную подсистему можно клавишей F1 или с помощью главного меню «Помощь (Help)», в выпадающем меню – «Python Docs»
## 7. Последовательное выполнение действий
открытие файла prb1.py
поочерёдное активирование окон с помощью главного меню
закрытие текстовых редакторов
запуск программы из файла tdemo_chaos.py
просмотр демонстраций результатов программы
завершение работы со средой

Просмотреть файл

@@ -1,6 +0,0 @@
## Индивидуальное контрольное задание по теме 1
#Соловьёва Екатерина А-01-23
#Задание
Что означает название интерактивной оболочки IDLE?
#Ответ
Integrated Development and Learning Environment (Интегрированная среда разработки и обучения)

Просмотреть файл

@@ -1,188 +0,0 @@
#Протокол по Теме 2 Соловьёва Е.Д.
f1=16; f2=3
f1,f2
(16, 3)
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os']
type(f2)
<class 'int'>
del f1,f2
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
f1=16; f2=3
dir(f2)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes']
dir(f1)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes']
help(abs)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
abs(-2)
2
help(abs),help(len), help(max), help(min), help(pow), help(round), help(sorted), help(sum), help(zip)
Help on built-in function abs in module builtins:
abs(x, /)
Return the absolute value of the argument.
Help on built-in function len in module builtins:
len(obj, /)
Return the number of items in a container.
Help on built-in function max in module builtins:
max(...)
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more positional arguments, return the largest argument.
Help on built-in function min in module builtins:
min(...)
min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its smallest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more positional arguments, return the smallest argument.
Help on built-in function pow in module builtins:
pow(base, exp, mod=None)
Equivalent to base**exp with 2 arguments or base**exp % mod with 3 arguments
Some types, such as ints, are able to use a more efficient algorithm when
invoked using the three argument form.
Help on built-in function round in module builtins:
round(number, ndigits=None)
Round a number to a given precision in decimal digits.
The return value is an integer if ndigits is omitted or None. Otherwise
the return value has the same type as the number. ndigits may be negative.
Help on built-in function sorted in module builtins:
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
Help on built-in function sum in module builtins:
sum(iterable, /, start=0)
Return the sum of a 'start' value (default: 0) plus an iterable of numbers
When the iterable is empty, return the start value.
This function is intended specifically for use with numeric values and may
reject non-numeric types.
Help on class zip in module builtins:
class zip(object)
| zip(*iterables, strict=False)
|
| The zip object yields n-length tuples, where n is the number of iterables
| passed as positional arguments to zip(). The i-th element in every tuple
| comes from the i-th iterable argument to zip(). This continues until the
| shortest argument is exhausted.
|
| If strict is true and one of the arguments is exhausted before the others,
| raise a ValueError.
|
| >>> list(zip('abcdefg', range(3), range(4)))
| [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]
|
| Methods defined here:
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __iter__(self, /)
| Implement iter(self).
|
| __next__(self, /)
| Implement next(self).
|
| __reduce__(self, /)
| Return state information for pickling.
|
| __setstate__(self, object, /)
| Set state information for unpickling.
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs)
| Create and return a new object. See help(type) for accurate signature.
(None, None, None, None, None, None, None, None, None)
Gg1=45
Gg1
45
gg1
1.6
bb1=True; bb2=False
bb1;bb2
True
False
type(bb1)
<class 'bool'>
ii1=-1234567890
ff1=-8.9876e-12
dv1=0b1101010
type(dv1)
<class 'int'>
vsm1=0o52765
shest1=0x7109af6
cc1=2-3j
a=3.67; b=-0.45
cc2=complex(a,b)
cc2
(3.67-0.45j)
ss1='Это - строка символов'
ss1="Это - строка символов"
ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
print(ss1a)
Это - " строка символов ",
выводимая на двух строках
ss1b= 'Меня зовут: \n Соловьёва Е. Д.'
print(ss1b)
Меня зовут:
Соловьёва Е. Д.
ss1b[0:23]
'Меня зовут: \n Соловьёва'
ss1b[14:23:1]
'Соловьёва'
ss1b[3:10]
'я зовут'
ss1b[14:23:2]
'Слвёа'
spis1=[111,'Spisok',5-9j]
stup=[0,0,1,1,1,1,1,1,1]
spis=[1,2,3,4,
5,6,7,
8,9,10]
spis
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
spis1[-1]
(5-9j)
stup[-8::2]
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]

Просмотреть файл

@@ -1,219 +0,0 @@
# Отчёт по теме 2
Соловьёва Екатерина, А-01-23
## 1. Начало работы с оболочкой IDLE.
Установила рабочий каталог, создала текстовый редактор с комментарием и сохранила в рабочий каталог.
```py
import os
os.chdir('C:\\Users\Ekaterina\\OneDrive\\Desktop\\Solovyova\\python-labs\\TEMA2')
```
## 2. Изучение простых конструкций языка Python.
```py
f1=16; f2=3 #Операция присваивания
f1,f2 или f1;f2 #Чтение переменных (можно записать через запятую или точку с запятой)
dir() #просмтор всех объектов
dir(f1) #просмтор атрибутов конкретного объекта
type(f2) #определение классовой принадлежности
del f1,f2 #удаление объектов
```
## 3. Допустимые и недопустимые именования объектов
```py
gg1=1.6 #значение в виде вещественного числа
hh1='Строка' #значение в виде символьной строки
73sr=3 #неправильное имя – начинается с цифры - будет диагностика!
and=7 #недопустимое имя – совпадает с ключевым словом - будет диагностика!
```
## 4. Просмотр ключевых слов
```py
import keyword
keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
keywords_list = keyword.kwlist #сохранила список в переменной
```
## 5.1 Просмотр встроенных идентификаторов
```py
import builtins
dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'PythonFinalizationError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '_IncompleteInputError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
```
## 5.2 Изучение встроенных функций
```py
help(abs),help(len), help(max), help(min), help(pow), help(round), help(sorted), help(sum), help(zip)
```
abs - модуль от числа max/min - вывод максимального/минимального числа для либо списка либо для нескольких перечисленных переменных len - выводит кол-во объектов в контейнере pow - возводит число в степень round - округляет число sum - дает сумму всех элементов в контейнере sorted - сортирует по возрастанию элементы в контейнере zip - "сшивает" значения из одной последовательности значений с соответвтвующими значениями из другой
## 6. Значимость регистра
При присваивании имен переменным важен также регистр букв.
```py
Gg1=45
Gg1
45
gg1
1.6
```
## 7.Изучение базовых типов объектов
## 7.1 Логический тип
bb1=True; bb2=False
bb1;bb2
True
False
type(bb1)
<class 'bool'>
## 7.2. Другие простые типы
```py
ii1=-1234567890
ff1=-8.9876e-12
dv1=0b1101010
type(dv1)
<class 'int'>
vsm1=0o52765
shest1=0x7109af6
#два способа создания комплексных чисел:
cc1=2-3j
a=3.67; b=-0.45
cc2=complex(a,b)
```
## 7.3. Строка символов
```py
ss1b= 'Меня зовут: \n Соловьёва Е. Д.'
print(ss1b)
Меня зовут:
Соловьёва Е. Д.
#Многострочные строки можно задавать в виде значения объекта с использованием тройных кавы-чек, например,
mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
```
Можно обращаться к частям строки символов с использованием индексов символов по их поряд-ку в строке. При этом надо учитывать, что нумерация символов начинается с 0. Например,
```py
ss1[0] #Это – символ «Э»
ss1[8] #А это – символ «р»
ss1[-2] #А это – символ «о» (при знаке «-»(минус) отсчет от конца строки)
#Операция «разрезания» или «создания среза», создающая новый объект:
ss1[6:9] #Это часть строки – символы с 6-го индекса по 8-й (9-й не включается!)
ss1[13:] #Это часть строки – с 13-го индекса и до конца
ss1[:13] #Это часть строки – с начала и до 12-го индекса включительно
ss1[5:-8] #Это часть строки – с 5-го индекса и до 8-го от конца
ss1[3:17:2] #Часть строки – с 3-го по 16-й индексы с шагом 2
#в срезе указываются не позиции элементов, а их индексы и что указываемая правая граница в срез не включается.
Самостоятельно посмотрите, что получится при отрицательном значении шага:
ss1[17:3:-2]
#при ss1[-4:3:-2] результат такой же
#Строка является неизменяемым объектом!
ss1[4]='=' # Будет диагностика!
#Однако, можно это сделать по-другому, переопределив строку:
ss1=ss1[:4]+'='+ss1[5:]
```
Самостоятельно сделала некоторые срезы
```py
ss1b[0:23]
'Меня зовут: \n Соловьёва'
ss1b[14:23:1]
'Соловьёва'
ss1b[3:10]
'я зовут'
ss1b[14:23:2]
'Слвёа'
```
## 8. Сложные типы объектов.
## 8. Список
```py
spis1=[111,'Spisok',5-9j] #Пример списка с 3 элементами разных типов
stup=[0,0,1,1,1,1,1,1,1]
spis=[1,2,3,4,
5,6,7,
8,9,10] #список будет считаться незавершенным, пока не будет введена закрывающая квадратная скобка
spis
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
spis1[-1]
(5-9j)
stup[-8::2] # от -8ого элемента до конца с шагом 2
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]
len(spis1) #число элементов в списке
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')
'Список'
spis1.append(ss1b)
print(spis1)
[111, (5-9j), 'New item', 'Меня зовут: \n Соловьёва Е. Д.']
```
len(...) возвращает длину списка(количестево элементов в контейнере) spis1.append(элемент) добавляет элемент в конец списка spis1+[элемент] - добавляет элемент на вывод 1 раз. Не вписывает этот элемент в список spis1.pop(индекс элемента) - удаляет элемент с указанным индексом spis1.reverse - переворачивает список spis1.insert(индекс, элемент) - вставляет элемент после элемента с указанным индексом spis1.extend(список) - присоединяет в конец другой список spis1.remove(элемент) - удаляет первый встреченный элемент равный указанному spis1.sort() - сортирует список в порядке возрастания spis1.copy() - создает поверхностную копию(shallow copy) spis1.index(элемент) - возвращает индекс первого соответсвующего элемента spis1.clear() - очищает список spis1.count(элемент) - считает кол-во соответствующих элементов
Списки могут быть вложенными:
```py
spis2=[spis1,[4,5,6,7]]
spis2[0][1]
(5-9j)
spis2[0][1]=78
spis1
[111, 78, 'New item', 'Меня зовут: \n Соловьёва Е. Д.']
spis2
[[111, 78, 'New item', 'Меня зовут: \n Соловьёва Е. Д.'], [4, 5, 6, 7]]
```
Далее я создала список включающий объекты разных типов: число, строка, логическое значение, список.
```py
spis3=[1,"one",True,spis1]
spis3
[1, 'one', True, [111, 78, 'New item', 'Меня зовут: \n Соловьёва Е. Д.']]
```
## 8.2. Кортеж
Работа с кортежами - их нельзя изменять, но можно переопределять, таким образом внося изменения.
```py
kort1=(222,'Kortezh',77+8j)
kort1= kort1+(1,2)
kort1= kort1+(ss1b,)
kort2=kort1[:2]+kort1[3:]
kort1.index(2)
4
kort1.count(222)
1
kort1[2]=90
Traceback (most recent call last):
File "<pyshell#115>", line 1, in <module>
kort1[2]=90
TypeError: 'tuple' object does not support item assignment
```
## 8.3. Словарь
Работа со словарями. Ключи - неизменяемы.
```py
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
dic1['Orel']
56
dic1['Pskov']=78
dic1
{'Saratov': 145, 'Orel': 56, 'Vologda': 45, 'Pskov': 78}
sorted(dic1.keys())
['Orel', 'Pskov', 'Saratov', 'Vologda']
sorted(dic1.values())
[45, 56, 78, 145]
dic2={1:'mean',2:'standart deviation',3:'correlation'}
dic3={'statistics':dic2,'POAS':['base','elementary','programming']}
dic3['statistics'][2]
'standart deviation'
dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)])
dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b]))
dic5
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n Соловьёва Е. Д.'}
```
Свой словарь состоит из 5 элементов, потому что мы "сшили" два контейнера, длина определилась по минимальному кол-ву.
```py
testlist = ['pink','yellow','black','green','red']
testkort = ('P','Y','B','G','R','T','Q')
dictest=dict(zip(testkort,testlist))
dictest
{'P': 'pink', 'Y': 'yellow', 'B': 'black', 'G': 'green', 'R': 'red'}
```
## 8.4. Множество