12 KiB
Отчёт по теме 3. Операция с объектами
Выполнил Огарков Илья, А-03-23
1. Начало работы
Создание текстового файла report.md
2. Преобразование простых базовых типов объектов
2.1 Преобразование в логический тип с помощью функции bool(<Объект>).
logiz1=bool(56) logiz2=bool(0) logiz3=bool("Beta") logiz4=bool("") logiz1,logiz2,logiz3,logiz4 (True, False, True, False)
2.2 Преобразование в целое десятичное число объекта с заданной системой счисления
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");tt5
Преобразование целых чисел или строк символов в вещественное число
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 Преобразование десятичных чисел в другие системы счисления
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,16) 123
3. Изучение преобразования более сложных базовых типов объектов
3.1 Преобразование в строку символов с помощью функции str
strk1=str(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
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_values = list({"A":1,"B":2,"C":9}.values());spis3_values [1, 2, 9]
3.3. Преобразование элементов объектов в кортеж с помощью функции tuple
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. Удаление объектов
del strk5, kort8 strk5;kort8 Traceback (most recent call last): File "<pyshell#43>", line 1, in strk5;kort8 NameError: name 'strk5' is not defined. Did you mean: 'strk1'? familiya = "Ogarkov IA" familiya = list(familiya);familiya ['O', 'g', 'a', 'r', 'k', 'o', 'v', ' ', 'I', 'A'] familiya = tuple(familiya);familiya ('O', 'g', 'a', 'r', 'k', 'o', 'v', ' ', 'I', 'A') familiya = str(familiya);familiya "('O', 'g', 'a', 'r', 'k', 'o', 'v', ' ', 'I', 'A')"
4. Арифметические операции
4.1. Сложение и вычитание (+ и -)
12+7+90 109 5.689e-1 - 0.456 0.11289999999999994 23.6+54 77.6 14-56.7+89 46.3
4.2. Умножение (*)
-6.7*12 -80.4
4.3. Деление
-234.5/6 -39.083333333333336 a=178/45;a 3.9555555555555557
4.4. Деление с округлением вниз
b = 178//45 b 3 c=-24.6//12.1;c -3.0
4.5. Получение остатка от деления (%)
148%33 16 12.6%3.8 1.2000000000000002
4.6. Возведение в степень (**)
143 2744 e=2.73.6;e 35.719843790663525
5. Операции с двоичными представлениями целых чисел
5.1. Двоичная инверсия (~)
dv1=9 dv2=~dv1;dv2 -10 bin(dv2);bin(dv1) '-0b1010' '0b1001'
5.2. Двоичное «И» (&)
bin(7&9) '0b1' bin(7&8) '0b0'
5.3. Двоичное «ИЛИ» (|)
bin(7|9 ) '0b1111' bin(7|8) '0b1111' bin(14|5) '0b1111'
5.4. Двоичное «исключающее ИЛИ»(^)
bin(14^5) '0b1011' 14^5 11
5.5. Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева.
h=14 g=h<<2 g1=h>>1 g2=h>>2 bin(g2) '0b11' bin(h) '0b1110' bin(g) '0b111000' bin(g1) '0b111'
Число A: 1011001 (7 знаков) = 89 в десятичной
a = 0b1011001
Число B: 11011010 (8 знаков) = 218 в десятичной
b = 0b11011010
print(f"a = {a} (binary: {bin(a)})") print(f"b = {b} (binary: {bin(b)})")
6. Операции при работе с последовательностями (строками, списками, кортежами)
6.1. Объединение последовательностей (конкатенация)(+)
'Система '+'регулирования' 'Система регулирования' ['abc','de','fg']+['hi','jkl'] ['abc', 'de', 'fg', 'hi', 'jkl'] ('abc','de','fg')+('hi','jkl') ('abc', 'de', 'fg', 'hi', 'jkl')
6.2. Повторение (*)
'ля-'*5 'ля-ля-ля-ля-ля-' ['ку','-']*3 ['ку', '-', 'ку', '-', 'ку', '-'] ('кис','-')*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)
stroka='Система автоматического управления' 'автомат' in stroka True 'ку' in ['ку','-']*3 True 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') False
6.4. Подстановка значений в строку с помощью оператора «%»
stroka='Температура = %g %s %g' stroka % (16,' меньше ',25); stroka 'Температура = 16 меньше 25' stroka='Температура = %(zn1)g %(sravn)s %(zn2)g' stroka % {'zn1':16,'sravn':' меньше ','zn2':25} 'Температура = 16 меньше 25'
7. Оператор присваивания
7.1. Обычное присваивание значения переменной (=)
zz=12 zz 12
7.2. Увеличение значения переменной на заданную величину (+=) или уменьшение (-=)
zz=12 zz 12 zz+=5;zz 17 zz-=3;zz 14 stroka='Система' stroka+=' регулирования';stroka 'Система регулирования'
7.3. Умножение текущего значения переменной на заданную величину (*=) или деление (/=)
zz/=2;zz 7.0 zz*=5;zz 35.0
7.5. Множественное присваивание
w;v 10 10 n1,n2,n3=(11,-3,'all');n1;n2;n3 11 -3 'all' n1,n2,n3="Str" n1;n2;n3 'S' 't' 'r' n1,n2,n3=[1,2,3];n1;n2;n3 1 2 3 n1,n2,n3={1:"one",2:"two",3:"three"};n1;n2;n3 1 2 3 n1,n2,n3 = (1,2,3);n1;n2;n3 1 2 3
8. Логические операции – при создании логических выражений, дающих в результате вычисления значения True или False
8.1. Операции сравнение
w>v False
8.2. Проверка наличия заданного элемента в последовательности или во множестве, а также проверка наличия ключа в словаре (in)
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)
a=17 b=-6 (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1) True
8.4. Проверка ссылок переменных на один и тот же объект (is)
w=v=10 w is v True w1=['A','B'] v1=['A','B'] w1 is v1 False w1,v1=['A','B'] ;w1 is v1 False
9. Операции с объектами, выполняемые с помощью методов
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. Методы для работы со строками
stroka.find('пр') 5 stroka.count("с") 4 stroka.replace(' у',' автоматического у') 'Микропроцессорная система автоматического управления' spis22=stroka.split(' ') spis22 ['Микропроцессорная', 'система', 'управления'] stroka.upper() 'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ' stroka3=" ".join(spis22) stroka3 'Микропроцессорная система управления' stroka3.partition("с") ('Микропроце', 'с', 'сорная система управления') stroka3.rpartition("с") ('Микропроцессорная си', 'с', 'тема управления') strk1='Момент времени {}, значение = {}' 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. Методы для работы со списками
spsk = [1,2,3,4,5] spsk.pop(2) 3 spsk [1, 2, 4, 5] spsk.append('c') spsk [1, 2, 4, 5, 'c'] spsk.insert(2,'a') spsk [1, 2, 'a', 4, 5, 'c'] spsk.count('a') 1 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']