# Отчет по теме 3

Мамакин Ярослав, А-02-23

## 1 Начало работы

Запустил среду IDLE, установил рабочую папку.

## 2 Преобразование простых базовых типов объектов

## 2.1 Преобразование в логический тип с помощью функции bool(<Объект>)

```py
>>>logiz1=bool(56)
>>>logiz2=bool(0)
>>>logiz3=bool("Beta")
>>>logiz4=bool("")
>>>logiz1
True
>>>logiz2
False
>>>logiz3
True
>>>logiz4
False
```

## 2.2 Преобразование в число

В тип int

```py
>>>tt1=int(198.6)
>>>tt2=int("-76")
>>>tt3=int("B",16)
>>>tt4=int("71",8)
>>>tt5=int("98.76")
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
>>>tt1
198
>>>tt2
-76
>>>tt3
11
>>>tt4
57
```

В тип float

```py
>>>flt1=float(789)
>>>flt2=float(-6.78e2)
>>>flt3=float("Infinity")
>>>flt4=float("-inf")
>>>flt1
789.0
>>>flt2
-678.0
>>>flt3
inf
>>>flt4
-inf
```

## 3 Изучите преобразования более сложных базовых типов объектов.

## 3.1 Преобразование в строку

```py
strk1=str(23.6)
strk2=str(logiz3)
strk3=str(["A","B","C"])
strk4=str(("A","B","C"))
strk5=str({"A":1,"B":2,"C":9})
```

## 3.2 Преобразование в список

```py
spis1=list("Строка символов")
spis2=list((124,236,-15,908))
spis3=list({"A":1,"B":2,"C":9})
```

## 3.3 В кортеж

```py
kort7=tuple('Строка символов')
kort8=tuple(spis2)
kort9=tuple({"A":1,"B":2,"C":9})
```

## 3.4 Удаление объектов

```py
del strk5, kort8
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'flt1', 'flt2', 'flt3', 'flt4', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'os', 'spis1', 'spis2', 'spis3', 'str1', 'str2', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'u', 'v']
imya = 'Мамакин Я. Р.'
imya = list(imya)
imya = tuple(imya)
imya = str(imya)
imya
"('М', 'а', 'м', 'а', 'к', 'и', 'н', ' ', 'Я', '.', ' ', 'Р', '.')"
```

## 4 Арифметические операции

## 4.1 Сложение и вычитание

```py
>>>12+7+90
109
>>>5.689e-1 - 0.456
0.11289999999999994
>>>23.6+54
77.6
>>>14-56.7+89
46.3
```

## 4.2 Умножение

```py
>>>-6.7*12
-80.4
```

## 4.3 Деление

```py
>>>-234.5/6
-39.083333333333336
>>>a=178/45
>>>a,type(a)
(3.9555555555555557, <class 'float'>)
```

## 4.4 Деление с округлением вниз

```py
>>>b=178//45
>>>c=-24.6//12.1
>>>b
3
>>>c
-3.0
>>>type(b)
<class 'int'>
>>>type(c)
<class 'float'>
```

## 4.5 Взятие остатка от деления

```py
>>>148%33
16
>>>12.6%3.8
1.2000000000000002
```

## 4.6 Возведение в степень

```py
>>>14**3
2744
>>>e=2.7**3.6
>>>e
35.719843790663525
>>>type(e)
<class 'float'>
>>>f=complex(2+3j)
>>>g=f**3.6
>>>type(g)
<class 'complex'>
>>>h=f%5
Traceback (most recent call last):
  File "<pyshell#81>", line 1, in <module>
    h=f%5
TypeError: unsupported operand type(s) for %: 'complex' and 'int'
>>>h1=f//3
Traceback (most recent call last):
  File "<pyshell#82>", line 1, in <module>
    h1=f//3
TypeError: unsupported operand type(s) for //: 'complex' and 'int'
```

## 5 Операции с двоичными числами

## 5.1 Инверсия

```py
>>>dv1=9
>>>dv2=~dv1
>>>dv2, type(dv2)
(-10, <class 'int'>)
```

## 5.2 Логическое И

```py
>>>7&9
1
>>>7&8
0
```

## 5.3 Логическое ИЛИ

```py
>>>7|9
15
>>>7|8
15
>>>14|5
15
```

## 5.4 Исключающее или

```py
>>>14^5
11
```

## 5.5 Сдвиг разрядов

```py
>>>h=14
>>>g=h<<2
>>>g1=h>>1
>>>g2=h>>2
>>>g
56
>>>g1
7
>>>g2
3
>>>255^128
127 # 11111111 искл. ИЛИ 10000000 = 1111111
```

## 6 Операции при работе с последовательностями (строками, списками, кортежами)

## 6.1 Конкатенация

```py
>>>'Система '+'регулирования'
'Система регулирования'
>>>['abc','de','fg']+['hi','jkl']
['abc', 'de', 'fg', 'hi', 'jkl']
>>>('abc','de','fg')+('hi','jkl')
('abc', 'de', 'fg', 'hi', 'jkl')
```

## 6.2 Повторение

```py
>>>'ля-'*5
'ля-ля-ля-ля-ля-'
>>>['ку','-']*3
['ку', '-', 'ку', '-', 'ку', '-']
>>>('кис','-')*4
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
>>>signal1=[0]*3+[1]*99
>>>signal2=(0,)*3+(1,)*5+(0,)*7
>>>signal1
[0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
>>>signal2
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
```

## 6.3 Проверка вхождения

```py
>>>stroka='Система автоматического управления'
>>>'автомат' in stroka
True
>>>'ку' in ['ку','-']*3
True
>>>'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')
False
```

## 6.4 Подстановка значений

```py
>>>stroka='Температура = %g %s  %g'
>>>stroka % (16,' меньше ',25)
'Температура = 16  меньше   25'
>>>stroka='Температура = %(zn1)g %(sravn)s  %(zn2)g'
>>>stroka % {'zn1':16,'sravn':' меньше ','zn2':25}
'Температура = 16  меньше   25'
```

## 7 Присваивание

## 7.1 Обычное

```py
>>>zz=-12
```

## 7.2 Увеличение

```py
>>>zz+=5
>>>zz-=3
>>>stroka='Система'
>>>stroka+=' регулирования'
>>>stroka
'Система регулирования'
```

## 7.3 Умножение

```py
>>>zz*=5
>>>s='s'
>>>s*=5
>>>s
'sssss'
```

## 7.4 Деление с округлением, остаток, степень

```py
>>>zz
-25.0
>>>zz//=4
>>>zz
-7.0
>>>zz%=3
>>>zz
2.0
>>>zz**=5
>>>zz
32.0
```

## 7.5 Множественное присваивание

```py
>>>w=v=10
>>>n1,n2,n3=(11,-3,'all')
>>>n1,n2,n3=[1,2,3] # можно
>>>n1,n2,n3={1:'a',2:'b',3:'c'} # можно
>>>n1
1
```

## 8 Логические операции

## 8.1 Сравнение

```py
>>>w<=v
True
>>>w==v
True
```

## 8.2 Проверка наличия

```py
>>>mnoz1={'pen','book','pen','iPhone','table','book'}
>>>'book' in mnoz1
True
>>>'cap' in mnoz1
False
>>>dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
>>>'Vologda' in dic1
True
>>>'Pskov' in dic1
False
>>>56 in dic1.values()
True
>>>dct1={'Institut':['AVTI','IEE','IBB'],'Depart':['UII','PM','VMSS','MM'],'gruppa': ['A-01-15','A-02-15']}
>>>'UII' in dct1['Depart']
True
>>>dct1['Depart'][1] == 'MM'
False
```

## 8.3 Создание больших логических выражений

```py
>>>a=17
>>>b=-6
>>>(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
True
>>>(b>=a) or not ('pen' in dic1)
True
```

## 8.4 Проверка совпадения ссылок на объект

```py
>>>w is v
True
>>>w1=['A','B']
>>>v1=['A','B']
>>>w1 is v1
False
```
w1 и v1 идентичные, но отдельные объекты. w и v ссылаются на один объект

## 9 Применение методов к объектам

## 9.1 Работа со строками

```py
stroka='Микропроцессорная система управления'
dir(stroka)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
stroka.find('пр')
5
stroka.count("с")
4
stroka.replace(' у',' автоматического у')
'Микропроцессорная система автоматического управления'
spis22=stroka.split(' ')
stroka.upper()
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
stroka3=" ".join(spis22)
stroka3.partition("с")
('Микропроце', 'с', 'сорная система управления')
stroka3.rpartition("с")
('Микропроцессорная си', 'с', 'тема управления')
strk1='Момент времени {}, значение = {}'
strk1.format(1,89.7)
'Момент времени 1, значение = 89.7'
strk2='Момент времени {1}, значение = {0}:{2}'
strk2.format(36.7,2,'норма!')
'Момент времени 2, значение = 36.7:норма!'
strk3='Момент времени {num}, значение = {znch}'
strk3.format(znch=89.7,num=2)
'Момент времени 2, значение = 89.7'
```

## 9.2 Работа со списками

```py
spsk = [1,2,3,4,5,6]
dir(spsk)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
spsk = [1,2,3,4,5,6]
spsk.pop(2)
3
spsk.append('c')
spsk
[1, 2, 4, 5, 6, 'c']
spsk.insert(2,'a')
spsk
[1, 2, 'a', 4, 5, 6, 'c']
spsk.count('a')
1
```

## 9.3 Работа с кортежами

```py
kort = (1,2)
dir(kort)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
len(kort)
2
```

## 9.4 Работа со словарями

```py
dict1={1:'a',2:'b',3:'c'}
dir(dict1)
['__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']
dict1.popitem()
(3, 'c')
```









