ответвлено от main/python-labs
rework report lab3, test lab3; report and task lab4
Этот коммит содержится в:
@@ -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
Обычный файл
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))
|
||||
Напишите инструкцию, создающую список со словами из данного предложения.
|
||||
```
|
||||
Ссылка в новой задаче
Block a user