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)

55
TEMA3/test.md Обычный файл
Просмотреть файл

@@ -0,0 +1,55 @@
# Тест по модулю 1
Махнов Георгий, А-01-23
## Задание
M1_10
1) Какова роль компилятора в среде Python? Чем отличаются файлы с расширением .pyc от файлов с расширением .py?
2) Напишите инструкцию, создающую список со словами из данного предложения. Подсчитайте и отобразите на экране число слов.
3) Создайте кортеж с именами 10 любых студентов вашей группы. Напишите инструкцию, доказывающую, что создан объект именно требуемого типа. Напишите инструкцию отображения списка атрибутов созданного объекта.
4) Превратите кортеж во множество. Подсчитайте число элементов множества и отобразите на экране с помощью формата по шаблону: "Во множестве ХХ студентов".
5) Напишите инструкцию, создающую строку из элементов списка из п.2. Отобразите строку на экране.
## Решение
1) Компилятор в Питоне преобразует исходный код в байт-код, который может быть выполнен компьютером и помогает повысить скорость и производительность. Файл .pyc отличается от файла .py тем, что в последнем содержится читаемый человеком код, и служит для разработки, в то время как .pyc содержит в себе байт-код и служит для ускорения запуска программы.
2)
```
>>> sttr = "Напишите инструкцию, создающую список со словами из данного предложения."
>>> list_sttr = list(sttr.split())
>>> list_sttr
['Напишите', 'инструкцию,', 'создающую', 'список', 'со', 'словами', 'из', 'данного', 'предложения.']
>>> len(list_sttr)
9
```
3)
```
>>> fio_tuple = ('Дима', 'Данил','Паша','Лиза','Георгий','Катя','Максим','Вадим','Артем','Никита')
>>> fio_tuple
('Дима', 'Данил', 'Паша', 'Лиза', 'Георгий', 'Катя', 'Максим', 'Вадим', 'Артем', 'Никита')
>>> type(fio_tuple)
<class 'tuple'>
>>> dir(fio_tuple)
['__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']
```
4)
```
>>> list_tuple = set(fio_tuple)
>>> list_tuple
{'Паша', 'Максим', 'Артем', 'Данил', 'Никита', 'Лиза', 'Дима', 'Вадим', 'Катя', 'Георгий'}
>>> print("Во множестве ", len(list_tuple), " студентов")
Во множестве 10 студентов
```
5)
```
>>> print(" ".join(list_sttr))
Напишите инструкцию, создающую список со словами из данного предложения.
```