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

Зеленкина Ксения А-02-23
## Задание
1)	Как установить рабочий (текущий) каталог в среде? Какую пользу можно получить от такой установки?
2)	Напишите инструкции, обеспечивающие подсчет числа букв (без запятой, скобок и пробелов) в данном предложении. Отобразите результат с использованием формата по шаблону: " в предложении ХХ букв".
3)	Создайте числовой объект со значением 2345. Поочередно представьте и отобразите на экране это число в двоичном, восьмеричном и шестнадцатеричном виде. Определите класс созданного объекта и отобразите список его атрибутов. Напишите инструкцию определения числа разрядов в двоичном представлении числа.
4)	Создайте объект со значением {-45,78,90,-3,56}. Определите класс этого объекта. Атрибуты объекта запишите в объект-кортеж. Напишите инструкцию, позволяющую проверить наличие метода clear у этого кортежа.
5)	Подсчитайте сумму элементов в объекте, созданном в п.4. Отобразите результат по шаблону: "Сумма элементов=ХХХ".

## Решение
#### 1.
В командном окне после символов приглашения к диалогу нужно ввести инструкции настройки рабочего каталога среды по следующему образцу:
```py
>>> import os
>>> os.chdir('C:\\Users\\user\\OneDrive\\Documents\\KseniaZelenkina\\python-labs\\TEMA1\\Отчет')
```
__Важно!__ В строке, задающей путь к рабочему каталогу, имена папок разделены двойными слешамию.
__Польза:__
- Можно открывать файлы просто по имени: open('data.txt')
- Не нужно писать полные пути к файлам
- Импорт модулей из той же папки работает без настройки путей

Чтобы проверить текущий каталог, можно написать следующую инструкцию:
```py
>>> import os
>>> print(os.getcwd())
```

#### 2.
_Код:_
```py
s = "Напишите инструкции, обеспечивающие подсчет числа букв (без запятой, скобок и пробелов) в данном предложении."
s = s.replace(',', '')
s = s.replace('(', '')
s  = s.replace(')', '')
s  = s.replace(' ', '')
lc = len(s)
e = 'В предложении %d букв'
kol = 82
print(e % kol)
```

_Вывод:_
```py
В предложении 82 букв
```

#### 3.

_Код:_
```py
num = 2345
print('Двочиное представление: ', bin(num))
print('Восьмеричное: представление: ', oct(num))
print('Шестнадцатеричное: представление: ', hex(num))
print(type(num))
print(dir(num))
kol_raz = len(bin(num)) - 2 
print('Число разрядов в двоичном представлении: ', kol_raz)
```

_Вывод:_
```py
Двочиное представление:  0b100100101001
Восьмеричное: представление:  0o4451
Шестнадцатеричное: представление:  0x929
<class 'int'>
['__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']
Число разрядов в двоичном представлении:  12
```
_В строке "kol_raz = len(bin(num)) - 2" мы вычитаем 2, так как в двоичном представлениии перед 0 и 1 стоит '0b', которую нам учитывать не надо._

#### 4.

_Код:_
```py
d = {-45, 78, 90, -3, 56}
print(type(d))
attrib =  tuple(dir(d))
print('Атрибуты: ', attrib)
pr = 'clear' in dir(attrib)
print(pr)
```

_Вывод:_
```py
<class 'set'>
Атрибуты:  ('__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update')
False
```

#### 5.
_Код:_
```py
print('Сумма элементов= ', sum(d))
```
```py
Сумма элементов=  176
```