Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

556 строки
20 KiB
Markdown

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# Отчет по теме 3
Хатюхин Евгений, А-02-23
## 1 Запуск IDLE
## 2 Преобразование базовых типов объектов в другие типы
### 2.1 Изучил преобразование объектов в логический тип данных
```py
logiz1=bool(56)
logiz2=bool(0)
logiz3=bool("Beta")
logiz4=bool("")
logiz4
False
```
### 2.2 Изучил преобразование объектов в числовой тип данных
```py
tt1=int(198.6) #Отбрасывается дробная часть
tt1
198
tt2=int("-76") #Число – в строке символов, система по умолчанию - десятичная
tt2
-76
tt3=int("B",16)
tt3
11
tt4=int("71",8)
tt4
57
tt5=int("98.76")
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
# Т.к. число является вещественным и представлено в виде строки, то для преобразования его в целочисленный тип данных нужно сперва преобразовать строку в тип данных float, а потом из float в int
flt1=float(789)
flt1
789.0
flt2=float(-6.78e2)
flt2
-678.0
flt3=float("Infinity")
flt3
inf
flt4=float("-inf")
flt4
-inf
```
### 2.3 Изучил преобразование целочисленных объектов в строки с двоичным, восьмеричным и шестнадцатеричным представлением и обратное представление
```py
hh=123
dv1=bin(hh) #Преобразование в строку с двоичным представлением
dv1
'0b1111011'
vos1=oct(hh) # Преобразование в строку с восьмеричным представлением
vos1
'0o173'
shs1=hex(hh) # Преобразование в строку с шестнадцатеричным представлением
shs1
'0x7b'
int(dv1,2)
123
int(vos1,8)
123
int(shs1,8*2)
123
```
## 3 Изучил преобразования более сложных базовых типов объектов
### 3.1 Изучил преобразование в строку символов с помощью функции str(<Объект>)
```py
strk1=str(23.6)
strk1
'23.6'
strk2=str(logiz3)
strk2
'True'
strk3=str(["A","B","C"]) #Преобразуем список
strk3
"['A', 'B', 'C']"
strk4=str(("A","B","C")) #Преобразуем кортеж
strk4
"('A', 'B', 'C')"
strk5=str({"A":1,"B":2,"C":9}) #Преобразуем словарь
strk5
"{'A': 1, 'B': 2, 'C': 9}"
```
### 3.2 Изучил преобразование элементов объекта в список с помощью функции list(<Объект>)
```py
spis1=list("Строка символов") #Заданная строка разделяется на символы
spis1
['С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в']
spis2=list((124,236,-15,908)) #Кортеж превращается в список
spis2
[124, 236, -15, 908]
spis3=list({"A":1,"B":2,"C":9}) #Преобразование словаря в список
spis3
['A', 'B', 'C']
spis3 = list({"A":1,"B":2,"C":9}.values())
spis3
[1, 2, 9]
```
### 3.3 Изучил преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>)
```py
kort7=tuple('Строка символов') #Преобразование строки символов в кортеж
kort7
('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в')
kort8=tuple(spis2) #Преобразование списка в кортеж
kort8
(124, 236, -15, 908)
kort9=tuple({"A":1,"B":2,"C":9}) #Преобразование словаря в кортеж
kort9
('A', 'B', 'C')
```
### 3.4 Изучил удаление объектов
```py
del strk5, kort8
strk5
Traceback (most recent call last):
File "<pyshell#88>", line 1, in <module>
strk5
NameError: name 'strk5' is not defined. Did you mean: 'strk1'?
"strk5" in dir()
False
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'flt1', 'flt2', 'flt3', 'flt4', 'hh', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'shs1', 'spis1', 'spis2', 'spis3', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'vos1']
fam = "Хатюхин Е.С."
fam_ls = list(fam)
fam_ls
['Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.']
fam_krt = tuple(fam_ls)
fam_krt
('Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.')
fam_str = str(fam_krt)
fam_str
"('Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.')"
```
## 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   #Умножение вещественного числа на целое число
```
### 4.3 Изучил деление (/)
```py
-6.7*12 #Умножение вещественного числа на целое число
-80.4
-234.5/6 #Деление вещественного числа на целое
-39.083333333333336
a=178/45 #Деление двух целых чисел – проверьте тип объекта a!
type(a)
<class 'float'>
a
3.9555555555555557
```
### 4.4 Изучил деление с округлением вниз (//). Здесь результат может быть целым или вещественным. В нижеследующих операциях определите тип результата.
```py
b=178//45 #Деление двух целых чисел
b
3
c=-24.6//12.1 #Деление двух вещественных чисел
c
-3.0
d = -52.2 // 5
d
-11.0
```
### 4.5 Изучил получение остатка от деления (%)
```py
148%33 #Остаток от деления двух целых чисел
16
12.6%3.8 #Остаток от деления двух вещественных чисел
1.2000000000000002
12.6%4
0.5999999999999996
12%4.0
0.0
```
### 4.6 Изучил возведение в степень (\*\*)
```py
14**3 #Целое число возводится в целую степень
2744
e=2.7**3.6 #Вещественное число возводится в вещественную степень
e
35.719843790663525
14**(1/2)
3.7416573867739413
2**(1/2)
1.4142135623730951
```
```py
km1 = 5 - 7j
km2 = 10 - 14j
km1;km2
(5-7j)
(10-14j)
km1 + km2
(15-21j)
km1-km2
(-5+7j)
km1//km2
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
km1//km2
TypeError: unsupported operand type(s) for //: 'complex' and 'complex'
km1/km2
(0.5-0j)
km1**km2
(-1312.815003718761-3445.7568233592656j)
km1%km2
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
km1%km2
TypeError: unsupported operand type(s) for %: 'complex' and 'complex'
```
## 5 Изучил операции с двоичными представлениями целых чисел
### 5.1 Изучил двоичную инверсию (~)
```py
dv1=9
dv2=~dv1
dv2
-10
```
### 5.2 Изучил двоичное «И» (&) – побитовое совпадение двоичных представлений чисел
```py
7&9 # 111 и 1001 = 0001
1
7&8 # 111 и 1000 = 0000
0
```
### 5.3 Изучил двоичное «ИЛИ» (|)
```py
7|9 # 111 или 1001 = 1111
15
7|8 # 111 или 1000 = 1111
15
14|5 # 1110 или 0101 = 1111
15
```
### 5.4 Изучил двоичное «исключающее ИЛИ»(^)
```py
14^5  # 1110 исключающее или 0101 = 1011
```
### 5.5 Изучил сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева
```py
h=14 #Двоичное представление = 1110
g=h<<2 # Новое двоичное представление = 111000
g
56
g1=h>>1 # Новое двоичное представление = 0111
g1
7
g2=h>>2 # Новое двоичное представление = 0011
g2
3
```
```py
bin1 = int('0101010',2)
bin2 = int('1010101',2)
bin1;bin2
42
85
bin1&bin2
0
bin1|bin2
127
bin1^bin2
127
bin3 = ~bin1
bin3
-43
```
## 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 #Повторение строки 5 раз
'ля-ля-ля-ля-ля-'
['ку','-']*3 #Повторение списка 3 раза
['ку', '-', 'ку', '-', 'ку', '-']
('кис','-')*4 #Повторение кортежа 4 раза
('кис', '-', 'кис', '-', 'кис', '-', 'кис', '-')
signal1=[0]*3+[1]*99
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,)*3+(1,)*5+(0,)*7
signal2
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
```
### 6.3 Изучил проверку наличия заданного элемента в последовательности (in)
```py
stroka='Система автоматического управления'
stroka
'Система автоматического управления'
'автомат' in stroka #Наличие подстроки в строке
True
'ку' in ['ку','-']*3 #Наличие контекста в списке
True
'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') #Наличие контекста в кортеже
False
```
### 6.4 Изучил подстановку значений в строку с помощью оператора «%»
```py
stroka='Температура = %g %s %g'
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
zz
-12
```
## 7.2 Изучил увеличение значения переменной на заданную величину  (+=) или уменьшение (-=)
```py
zz+=5 # Значение zz увеличивается на 5
zz
-7
zz-=3 # Значение уменьшается на 3
zz
-10
```
### 7.3 Изучил умножение текущего значения переменной на заданную величину (\*=) или деление (\/=)
```py
zz/=2
zz
-5.0
zz*=5
zz
-25.0
a = 'bb'
a *= 2
a
'bbbb'
```
## 7.4 Изучил операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведения в степень(\*\*=)
```py
a = 20
a //= 6
a
3
a %= 2
a
1
a = 2
a **= 4
a
16
```
### 7.5 Изучил множественное присваивание
```py
w=v=10 # Переменным присваивается одно и то же значение
w
10
v
10
n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа
n1
11
n2
-3
n3
'all'
n1,n2,n3="11", "-3", "all"
n1;n2;n3
'11'
'-3'
'all'
n1,n2,n3=[11,-3,'all']
n1;n2;n3
11
-3
'all'
n1,n2,n3={11: 3,-3:7,'all':8}
n1;n2;n3
11
-3
'all'
```
## 8 Изучил логические операции
### 8.1 Изучил Операции сравнение: равенство (\=\=), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=)
```py
w==v
True
w>v
False
w<v
False
w<=v
True
w>=v
True
w!=v
False
```
### 8.2 Изучил проверку наличия заданного элемента в последовательности или во множестве, а также  проверка наличия ключа в словаре (in)
```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 Изучил создание больших логических выражений с использованием соединительных слов: логическое «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not)
```py
a=17
b=-6
(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
True
(5>6) and 'cap' in mnoz1 and not(56 in dic1.values())
False
(4==2*2) and (2**4 == 16) and not(100 > 1000)
True
```
### 8.4 Изучил проверку ссылок переменных на один и тот же объект (is)
```py
w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти
w is v
True
w1=['A','B']
v1=['A','B']
w1 is v1
False
w1=v1=['A','B']
w1 is v1
True
```
## 9 Изучил операции с объектами, выполняемые с помощью методов
```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']
```
### 9.1 Изучил методы для работы со строками
```py
stroka.find('пр') #Возвращает номер позиции первого вхождения указанного контекста или значение -1
5
stroka.count("с") #Подсчет числа вхождений строки “с” в stroka
4
stroka.replace(' у',' автоматического у')
'Микропроцессорная система автоматического управления'
spis22=stroka.split(' ') #Возвращает список подстрок, между которыми в строке стоит заданный разделитель
spis22
['Микропроцессорная', 'система', 'управления']
stroka.upper() #Возвращает строку со всеми заглавными буквами
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
stroka3=" ".join(spis22) #Возвращает строку, собранную из элементов списка
stroka3
'Микропроцессорная система управления'
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
sp = ['a','b','c','1','5']
sp
['a', 'b', 'c', '1', '5']
spsk = sp
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.pop(2)
'c'
spsk.append('c')
spsk
['a', 'b', '1', '5', 'c']
spsk.insert(2,'a')
spsk
['a', 'b', 'a', '1', '5', 'c']
spsk.count('a')
2
spsk = sp
spsk.pop(2)
'a'
spsk
['a', 'b', '1', '5', 'c']
sp.pop(1)
'b'
sp
['a', '1', '5', 'c']
```
### 9.3 Изучил применение методов кортежа
```py
kor = ('a','b','a','1','2')
kor
('a', 'b', 'a', '1', '2')
dir(kor)
['__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']
kor.index('1')
3
kor.count('a')
2
```
### 9.4 Изучил методы словарей и множеств
```py
sl = {"A":3, "B":4}
sl
{'A': 3, 'B': 4}
dir(sl)
['__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']
sl.keys()
dict_keys(['A', 'B'])
```
## 10 Завершил работу в IDLE