# Общее контрольное задание по теме 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 ) >>> 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 ['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения'] ```