# Общее контрольное задание по теме 3

Турханов Артем, А-03-23

## Задание
•	Преобразовать восьмеричное значение 45 в целое число.

•	Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а за-тем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка?

•	Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4.

•	Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключа-ющее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево.

•	Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка.

•	Определить список методов, доступных у ранее созданного словаря D. Поочередно использо-вать его методы keys и values, определить, что можно получить с применением этих методов.

•	Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки.  Заменить в списке элемент «-» на «,».  Удалить из списка элемент со значением  «данного». Отобразить получившийся список.


## Решение
Работа в интерпретаторе Python: 
### Задача 1
```py
>>> oct45 = oct(45); oct45
'0o55'
>>> dec45 = int(oct45, 8); dec45
45
```
### Задача 2
```py
>>> D = {"усиление":23, "запаздывание":12, "постоянная времени":78}
>>> dict_keys = D.keys(); dict_keys
dict_keys(['усиление', 'запаздывание', 'постоянная времени'])
type(dict_keys )
<class 'dict_keys'>
>>> dict_values = D.values(); dict_values
dict_values([23, 12, 78])
>>> T = tuple(dict_keys) + tuple(dict_values); T
('усиление', 'запаздывание', 'постоянная времени', 23, 12, 78)
```
Кортеж от списка отличается тем, что кортеж - это неизменяемый объект.
### Задача 3
```py
>>> ((1768 // 24.8)%3)**2.4
5.278031643091577
```
### Задача 4
```py
>>> ((~(13&27))^14)<<2
-32
```
13 = 00001101, а 27 = 00011011. 13&27 = 00001001. ~ (13&27) = 11110110. 14 = 00001110. (~ (13&27))^14 = 11111000. ((~(13&27))^14) << 2 = 11100000. 

Так как это в доп коде, то ~ (11100000 - 1) = 00100000. Что соответствует десятичному числу 32. Значит 11100000 - это двоичная  запись десятичного числа -32.
### Задача 5
```py
>>> ls1 = list(('колебат '*4).split()); ls1
['колебат', 'колебат', 'колебат', 'колебат']
'аткол' in (ls1[1] + ls1[2])
True
```
### Задача 6
```py
>>> help(D.keys)
Help on built-in function keys:

keys() method of builtins.dict instance
    Return a set-like object providing a view on the dict's keys.

>>> D.keys()
dict_keys(['усиление', 'запаздывание', 'постоянная времени'])
>>> help(D.values)
Help on built-in function values:

values() method of builtins.dict instance
    Return an object providing a view on the dict's values.

>>> D.values()
dict_values([23, 12, 78])
```
Используя методы keys и values, можно получить информацию о том, какие ключи (keys) и значения (values) имеются в словаре, к которму применены эти методы. В нашем случае словарь D имеет ключи: dict_keys(['усиление', 'запаздывание', 'постоянная времени']), и значения: dict_values([23, 12, 78]). 
### Задача 7
```py
>>> s1 = 'Создать объект - символьную строку с текстом данного предложения'
>>> ls2 = list(s1.split())
>>> ls2
['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения']
>>> ls2[ls2.index('-')] = ','; ls2
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения']
>>> ls2.remove('данного'); ls2
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения']
```