# Индивидуальное контрольное задание по теме 3

Коломейцев Дмитрий, А-02-23

## Задание

M1_5. Условие в решении.

## Решение

1)	Для чего предназначено предложение "Окно (Window)" главного меню:

Если в IDLE открыты несколько окон, например Shell и несколько файлов, то Window покажет все окна, которые открыты, чтобы между ними можно было переключаться.

2)	Создайте объект-словарь с 8 элементами: ключи - фамилии студентов группы, значения - средние баллы по итогам сессии. 
Напишите инструкцию,  доказывающую, что создан объект именно требуемого типа. 
Напишите инструкцию отображения списка атрибутов созданного объекта.

```py
students = {
    "Коломейцев": 5.01,
    "Антонов": 3.8,
    "Турханов": 4.9,
    "Степанов": 4.2,
    "Морозов": 3.5,
    "Новиков": 5.0,
    "Васильев": 4.1,
    "Соколов": 4.7
}
type(students)
<class 'dict'>
dir(students)
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
```

3)	Пополните словарь еще двумя элементами. Отобразите получившийся объект. 
Напишите инструкцию, позволяющую для указанного студента из словаря получить значение его среднего балла. 
Напишите инструкцию для получения списка всех студентов, представленных в словаре.

```py
students.update({"Aabaev":4.9, "Musk":3.1})
students
{'Коломейцев': 5.01, 'Антонов': 3.8, 'Турханов': 4.9, 'Степанов': 4.2, 'Морозов': 3.5, 'Новиков': 5.0, 'Васильев': 4.1, 'Соколов': 4.7, 'Aabaev': 4.9, 'Musk': 3.1}
students.get('Musk')
3.1
students.keys()
dict_keys(['Коломейцев', 'Антонов', 'Турханов', 'Степанов', 'Морозов', 'Новиков', 'Васильев', 'Соколов', 'Aabaev', 'Musk'])
```

4)	У одного из студентов средний балл оказался на 0.2 меньше указанного в словаре. 
Напишите инструкцию, исправляющую это значение в словаре. 
Отобразите полученный объект. 
Напишите инструкцию, вычисляющую общий средний балл для всех студентов, представленных в словаре.

```py
students['Musk']+=0.2
students
{'Коломейцев': 5.01, 'Антонов': 3.8, 'Турханов': 4.9, 'Степанов': 4.2, 'Морозов': 3.5, 'Новиков': 5.0, 'Васильев': 4.1, 'Соколов': 4.7, 'Aabaev': 4.9, 'Musk': 3.3}

average_grade = sum(students.values()) / len(students)
average_grade
4.340999999999999
```

5)	Создайте список из названий 4-х учебных дисциплин и список с числом часов в неделю на изучение каждой из 4-х дисциплин. 
Напишите инструкцию, позволяющую создать словарь, объединяющий эти два списка.

```py
disciplines = ["Math", "English", "Economics", "Philosophy"]
disciplines
['Math', 'English', 'Economics', 'Philosophy']

hours = [8, 4, 6, 2]
hours
[8, 4, 6, 2]

dict(zip(disciplines,hours)) # zip создает пары из элементов списка, dict создает словарь из этих пар
{'Math': 8, 'English': 4, 'Economics': 6, 'Philosophy': 2}
```