rework report lab3, test lab3; report and task lab4

Этот коммит содержится в:
2025-10-10 12:18:48 +03:00
родитель 4bc65ebc86
Коммит 6a5e2f9a4c
9 изменённых файлов: 460 добавлений и 36 удалений

Просмотреть файл

@@ -5,7 +5,7 @@
## Тема 3. Операции с объектами
## Задание 2 Преобразование простых базовых типов объектов.
### 2.1
### 2.1 Преобразование в логический тип с помощью функции bool(<Объект>).
```
>>> logiz1=bool(56)
>>> logiz2=bool(0)
@@ -21,7 +21,7 @@
>>> type(logiz4)
<class 'bool'>
```
### 2.2
### 2.2 2.2. Преобразование в целое десятичное число объекта с заданной системой счисления осуществ-ляется с помощью функции int(<Объект>[,<Система счисления, в которой определен объ-ект>]). По умолчанию система счисления принимается десятичной.
```
>>> tt1=int(198.6) #Отбрасывается дробная часть
>>> tt2=int("-76")
@@ -40,6 +40,9 @@
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '98.76'
```
Функция int() не может преобразовать строку с числом с плавающей точкой, из-за чего и возникла ошибка
```
>>> flt1=float(789)
>>> flt2=float(-6.78e2)
>>> flt3=float("Infinity")
@@ -53,7 +56,7 @@ inf
>>> flt4
-inf
```
### 2.3
### 2.3 Преобразование десятичных чисел в другие системы счисления
```
>>> hh=123
>>> dv1=bin(hh)
@@ -75,7 +78,7 @@ inf
123
```
## Задание 3.Изучим преобразования более сложных базовых типов объектов
### 3.1
### 3.1 Преобразование в строку символов с помощью функции str(<Объект>).
```
>>> strk1=str(23.6)
>>> strk2=str(logiz3)
@@ -93,7 +96,7 @@ inf
>>> strk5
"{'A': 1, 'B': 2, 'C': 9}"
```
### 3.2
### 3.2 Преобразование элементов объекта в список с помощью функции list(<Объект>).
```
>>> spis2=list((124,236,-15,908))
>>> spis3=list({"A":1,"B":2,"C":9})
@@ -107,7 +110,7 @@ inf
>>> spis_val
[1, 2, 9]
```
### 3.3
### 3.3 3.3. Преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>).
```
>>> kort7=tuple('Строка символов')
>>> kort8=tuple(spis2)
@@ -119,7 +122,7 @@ inf
>>> kort9
('A', 'B', 'C')
```
### 3.4
### 3.4 Удаление объектов.
```
>>> del strk5, kort8
>>> strk5, kort8
@@ -130,6 +133,16 @@ NameError: name 'strk5' is not defined. Did you mean: 'strk1'?
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'kort8' is not defined. Did you mean: 'kort7'?
>>> my_fio = "Махнов Г.А."
>>> list_fio = list(my_fio)
>>> list_fio
['М', 'а', 'х', 'н', 'о', 'в', ' ', 'Г', '.', 'А', '.']
>>> tuple_fio = tuple(list_fio)
>>> tuple_fio
('М', 'а', 'х', 'н', 'о', 'в', ' ', 'Г', '.', 'А', '.')
>>> new_str_fio = "".join(tuple_fio)
>>> new_str_fio
'Махнов Г.А.'
```
## Задание 4 Арифмитические операции
### 4.1 Сложение и вычитание (+ и -)
@@ -143,12 +156,12 @@ NameError: name 'kort8' is not defined. Did you mean: 'kort7'?
>>> 14-56.7+89
46.3
```
### 4.2
### 4.2 Умножение (*)
```
>>> -6.7*12
-80.4
```
### 4.3
### 4.3 Деление (/).
```
>>> -234.5/6
-39.083333333333336
@@ -158,7 +171,7 @@ NameError: name 'kort8' is not defined. Did you mean: 'kort7'?
>>> a
3.9555555555555557
```
### 4.4
### 4.4 Деление с округлением вниз (//).
```
>>> b=178//45
>>> c=-24.6//12.1
@@ -168,14 +181,14 @@ NameError: name 'kort8' is not defined. Did you mean: 'kort7'?
>>> bc
3
```
### 4.5
### 4.5 Получение остатка от деления (%).
```
>>> 148%33
16
>>> 12.6%3.8
1.2000000000000002
```
### 4.6
### 4.6 Возведение в степень (**).
```
>>> 14**3
2744
@@ -203,21 +216,30 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int'
(14.4+6j)
```
## Задание 5 Операции с двоичными представлениями целых чисел
### 5.1
### 5.1 Двоичная инверсия (~).
```
>>> dv1 = 9
>>> dv2 = ~dv1
>>> dv2
-10
```
### 5.2
~1001
0110
1111 = 2^4
-1001
0110 = ~1001
~x = (2^N - 1 - x) = -(x+1)
Т.к. двоичная инверсия преобразует число по формуле -(x+1), где x - заданное число, то при задании числа 9 двоичная инверсия преобразует его в -10
### 5.2 Двоичное «И» (&)
```
>>> 7&9
1
>>> 7&8
0
```
### 5.3
### 5.3 Двоичное «ИЛИ» (|)
```
>>> 7|9
15
@@ -226,12 +248,12 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int'
>>> 14|5
15
```
### 5.4
### 5.4 5.4. Двоичное «исключающее ИЛИ»(^)
```
>> 14^5
11
```
### 5.5
### 5.5 Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с допол-нением нулями, соответственно справа или слева.
```
>>> h=14
>>> g = h<<2
@@ -247,7 +269,7 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int'
3
```
## Задание 6. Операции при работе с последовательностями (строками, списками, кортежами).
### 6.1
### 6.1 Объединение последовательностей (конкатенация)(+)
```
>>> 'Система ' +'регулирования'
'Система регулирования'
@@ -256,7 +278,7 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int'
>>> ('abc','de','fg')+('hi','jkl')
('abc', 'de', 'fg', 'hi', 'jkl')
```
### 6.2
### 6.2 Повторение (*)
```
>>> 'ля-'*5
'ля-ля-ля-ля-ля-'
@@ -272,7 +294,7 @@ TypeError: unsupported operand type(s) for //: 'complex' and 'int'
>>> signal2
(0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
```
### 6.3
### 6.3 Проверка наличия заданного элемента в последовательности (in)
```
>>> stroka='Система автоматического управления'
>>> 'автомат' in stroka
@@ -282,7 +304,7 @@ True
>>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')
False
```
### 6.4
### 6.4 Подстановка значений в строку с помощью оператора «%»
#### Пример 1
```
>>> stroka='Температура = %g %s %g'
@@ -298,13 +320,13 @@ False
'Температура = 16 меньше 25'
```
## Задание 7 Оператор присваивания
### 7.1
### 7.1 Обычное присваивание значения переменной (=)
```
>>> zz = -12
>>> zz
-12
```
### 7.2
### 7.2 Увеличение значения переменной на заданную величину (+=) или уменьшение (-=)
```
>>> zz+=5
>>> zz
@@ -317,7 +339,7 @@ False
>>> stroka
'Система регулирования'
```
### 7.3
### 7.3 Умножение текущего значения переменной на заданную величину (*=) или деление (/=)
```
>>> zz/=2
>>> zz
@@ -326,7 +348,7 @@ False
>>> zz
-25.0
```
### 7.4
### 7.4 Операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведе-ния в степень(**=)
```
>>> zz//=5
>>> zz
@@ -339,7 +361,7 @@ False
>>> zz
8.0
```
### 7.5
### 7.5 Множественное присваивание
```
>>> w=v=10
>>> w,v
@@ -360,8 +382,9 @@ False
>>> w,v
({1, 2, 3}, {1, 2, 3})
```
## Задание 8 Операции сравнение: равенство (==), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=) – придумайте примеры этих операций. Сравните ранее созданные переменные w и v.
### 8.1
## Задание 8 8. Логические операции – при создании логических выражений, дающих в результате вычисле-ния значения True или False.
### 8.1 Операции сравнение: равенство (==), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=) – придумаем примеры этих операций. Сравним ранее созданные переменные w и v.
```
>>> 1==1
True
@@ -378,7 +401,7 @@ True
>>> w==v
True
```
### 8.2
### 8.2 Проверка наличия заданного элемента в последовательности или во множестве, а также проверка наличия ключа в словаре (in).
```
>>> mnoz1={'pen','book','pen','iPhone','table','book'}
>>> 'book' in mnoz1
@@ -398,7 +421,7 @@ True
>>> dct1['Depart'][1] == 'MM'
False
```
### 8.3
### 8.3 Создание больших логических выражений с использованием соединительных слов: логиче-ское «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not).
```
>>> a=17
>>> b=-6
@@ -406,7 +429,7 @@ False
True
>>> (a<b) or (a>=b) and (a==b)
```
### 8.4
### 8.4 Проверка ссылок переменных на один и тот же объект (is).
```
>>> w=v=10
>>> w is v
@@ -417,13 +440,13 @@ True
False
```
w1 и v1 не являются одним и тем же объектом в памяти, поэтому is выдал ответ False
## Задание 9
## Задание 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
### 9.1 Методы для работы со строками.
```
>>> stroka.find('пр')
5
@@ -451,7 +474,7 @@ w1 и v1 не являются одним и тем же объектом в п
>>> strk3.format(znch=89.7,num=2)
'Момент времени 2, значение = 89.7'
```
### 9.2
### 9.2 Методы для работы со списками.
```
>>> spsk = [23,56,"str", 10, True]
>>> dir(spsk)
@@ -463,7 +486,7 @@ w1 и v1 не являются одним и тем же объектом в п
>>> spsk
[23, 56, 'a', 10, True, 'c']
```
### 9.3
### 9.3 Самостоятельно создадим кортеж и изучим применение его методов.
```
>>> my_cort = (1, "hi", 13, 5,86)
>>> dir(my_cort)
@@ -473,7 +496,7 @@ w1 и v1 не являются одним и тем же объектом в п
>>> my_cort.index("hi")
1
```
### 9.4
### 9.4 Также самостоятельно изучим методы словарей и множеств
```
>>> my_dict = {"math":13, "physics": 11, "history": 15}
>>> dir(my_dict)