ответвлено от main/python-labs
completed additional tasks, minor changes
Этот коммит содержится в:
145
TEMA3/report.md
145
TEMA3/report.md
@@ -11,22 +11,32 @@
|
||||
logiz1=bool(56)
|
||||
logiz1
|
||||
True
|
||||
type(logiz1)
|
||||
<class 'bool'>
|
||||
|
||||
logiz2=bool(0)
|
||||
logiz2
|
||||
False
|
||||
type(logiz2)
|
||||
<class 'bool'>
|
||||
|
||||
logiz3=bool("Beta")
|
||||
logiz3
|
||||
True
|
||||
type(logiz3)
|
||||
<class 'bool'>
|
||||
|
||||
logiz4=bool("")
|
||||
logiz4
|
||||
False
|
||||
type(logiz4)
|
||||
<class 'bool'>
|
||||
|
||||
logiz5=bool("Infinity")
|
||||
logiz5
|
||||
True
|
||||
type(logiz5)
|
||||
<class 'bool'>
|
||||
```
|
||||
|
||||
### 2.2 Преобразование в целое десятичное число объекта с заданной системой счисления.
|
||||
@@ -36,15 +46,27 @@ True
|
||||
tt1=int(198.6)
|
||||
tt1
|
||||
198
|
||||
type(tt1)
|
||||
<class 'int'>
|
||||
|
||||
tt2=int("-76")
|
||||
tt2
|
||||
-76
|
||||
type(tt2)
|
||||
<class 'int'>
|
||||
|
||||
tt3=int("B",16)
|
||||
tt3
|
||||
11
|
||||
type(tt3)
|
||||
<class 'int'>
|
||||
|
||||
tt4=int("71",8)
|
||||
tt4
|
||||
57
|
||||
type(tt4)
|
||||
<class 'int'>
|
||||
|
||||
tt5=int("98.76")
|
||||
Traceback (most recent call last):
|
||||
File "<pyshell#20>", line 1, in <module>
|
||||
@@ -59,18 +81,26 @@ _Объяснение последнего вызова: функция int() в
|
||||
flt1=float(789)
|
||||
flt1
|
||||
789.0
|
||||
type(flt1)
|
||||
<class 'float'>
|
||||
|
||||
flt2=float(-6.78e2)
|
||||
flt2
|
||||
-678.0
|
||||
type(flt2)
|
||||
<class 'float'>
|
||||
|
||||
flt3=float("Infinity")
|
||||
flt3
|
||||
inf
|
||||
type(flt3)
|
||||
<class 'float'>
|
||||
|
||||
flt4=float("-inf")
|
||||
flt4
|
||||
-inf
|
||||
type(flt4)
|
||||
<class 'float'>
|
||||
```
|
||||
### 2.3 Преобразование десятичных чисел в другие системы счисления:
|
||||
```py
|
||||
@@ -78,14 +108,20 @@ hh=123
|
||||
dv1=bin(hh)
|
||||
dv1
|
||||
'0b1111011'
|
||||
type(dv1)
|
||||
<class 'str'>
|
||||
|
||||
vos1=oct(hh)
|
||||
vos1
|
||||
'0o173'
|
||||
type(vos1)
|
||||
<class 'str'>
|
||||
|
||||
shs1=hex(hh)
|
||||
shs1
|
||||
'0x7b'
|
||||
type(shs1)
|
||||
<class 'str'>
|
||||
|
||||
int(dv1,2)
|
||||
123
|
||||
@@ -114,6 +150,20 @@ strk5=str({"A":1,"B":2,"C":9})
|
||||
strk5
|
||||
"{'A': 1, 'B': 2, 'C': 9}"
|
||||
```
|
||||
Создайте строку со своей фамилией и инициалами, преобразуйте её в список, затем список – в кортеж и, наконец, кортеж – в строку.
|
||||
|
||||
```py
|
||||
fio="Kolomeytsev D.A."
|
||||
fio=list(fio)
|
||||
fio
|
||||
['K', 'o', 'l', 'o', 'm', 'e', 'y', 't', 's', 'e', 'v', ' ', 'D', '.', 'A', '.']
|
||||
fio=tuple(fio)
|
||||
fio
|
||||
('K', 'o', 'l', 'o', 'm', 'e', 'y', 't', 's', 'e', 'v', ' ', 'D', '.', 'A', '.')
|
||||
fio=str(fio)
|
||||
fio
|
||||
"('K', 'o', 'l', 'o', 'm', 'e', 'y', 't', 's', 'e', 'v', ' ', 'D', '.', 'A', '.')"
|
||||
```
|
||||
|
||||
### 3.2 Преобразование элементов объекта в список с помощью функции list(<Объект>).
|
||||
```py
|
||||
@@ -265,6 +315,36 @@ Traceback (most recent call last):
|
||||
c1<c2
|
||||
TypeError: '<' not supported between instances of 'complex' and 'complex'
|
||||
```
|
||||
|
||||
Операции со смешанными типами:
|
||||
|
||||
```py
|
||||
178//45.0
|
||||
3.0
|
||||
|
||||
(2+1j)
|
||||
178/c
|
||||
(71.2-35.6j)
|
||||
|
||||
148%33
|
||||
16
|
||||
148.0%33
|
||||
16.0
|
||||
|
||||
148%c
|
||||
Traceback (most recent call last):
|
||||
File "<pyshell#99>", line 1, in <module>
|
||||
148%c
|
||||
TypeError: unsupported operand type(s) for %: 'int' and 'complex'
|
||||
|
||||
14**3
|
||||
2744
|
||||
14.5**3
|
||||
3048.625
|
||||
|
||||
c**5
|
||||
(-38+41j)
|
||||
```
|
||||
## 5. Операции с двоичными представлениями целых чисел.
|
||||
### 5.1. Двоичная инверсия (~).
|
||||
Значение каждого бита в представлении числа заменяется на противоположное значение (0 на 1, 1 на 0).
|
||||
@@ -276,6 +356,7 @@ dv1
|
||||
dv2
|
||||
-10
|
||||
```
|
||||
|
||||
### 5.2. Двоичное «И» (&).
|
||||
Побитовое совпадение двоичных представлений чисел:
|
||||
```py
|
||||
@@ -284,6 +365,7 @@ dv2
|
||||
7&8 # 111 и 1000 = 000
|
||||
0
|
||||
```
|
||||
|
||||
### 5.3. Двоичное «ИЛИ» (|).
|
||||
Побитовое сравнение двоичных представлений чисел и 0 получается,
|
||||
только если оба сравниваемых разряда равны 0:
|
||||
@@ -319,8 +401,44 @@ g2
|
||||
3
|
||||
```
|
||||
|
||||
Пример работы двух двоичных чисел из 7 знаков:
|
||||
```py
|
||||
a = 0b1010101 # 85 в десятичной системе
|
||||
b = 0b1100100 # 100 в десятичной системе
|
||||
|
||||
a
|
||||
85
|
||||
|
||||
b
|
||||
100
|
||||
|
||||
a<<2
|
||||
340
|
||||
|
||||
b>>2
|
||||
25
|
||||
|
||||
b
|
||||
102
|
||||
|
||||
~b
|
||||
-101
|
||||
|
||||
~a
|
||||
-86
|
||||
|
||||
(b&a)
|
||||
68
|
||||
```
|
||||
|
||||
## 6. Операции при работе с последовательностями (строками, списками, кортежами).
|
||||
|
||||
```py
|
||||
stroka='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']
|
||||
```
|
||||
|
||||
### 6.1. Объединение последовательностей (конкатенация)(+)
|
||||
```py
|
||||
'Система '+'регулирования' #Соединение двух строк символов
|
||||
@@ -402,15 +520,24 @@ stroka+=' регулирования'
|
||||
```
|
||||
### 7.3. Умножение текущего значения переменной на заданную величину (*=) или деление (/=)
|
||||
```py
|
||||
zz=-12
|
||||
zz/=2
|
||||
zz
|
||||
-5.0
|
||||
-6.0
|
||||
zz*=5
|
||||
zz
|
||||
-25.0
|
||||
-30.0
|
||||
zz*=5.4
|
||||
zz
|
||||
-162.0
|
||||
zz//=80
|
||||
zz
|
||||
-3.0
|
||||
zz**=4
|
||||
zz
|
||||
81.0
|
||||
```
|
||||
Для строк операция (*=) означает повторение текущего значения объекта заданное число раз.
|
||||
Попробуйте эту операцию самостоятельно.
|
||||
|
||||
### 7.4.Операции деления
|
||||
```py
|
||||
zz//=4
|
||||
@@ -533,6 +660,8 @@ o
|
||||
Операции с множеством:
|
||||
```py
|
||||
mnoz1={'pen','book','pen','iPhone','table','book'}
|
||||
dir(mnoz1)
|
||||
['__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
|
||||
'book' in mnoz1
|
||||
True
|
||||
'cap' in mnoz1
|
||||
@@ -541,6 +670,7 @@ False
|
||||
Операции со словарем:
|
||||
```py
|
||||
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
|
||||
['__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']
|
||||
'Vologda' in dic1
|
||||
True
|
||||
'Pskov' in dic1
|
||||
@@ -571,6 +701,7 @@ False
|
||||
```py
|
||||
w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти
|
||||
w is v
|
||||
# Числа до 500 в питоне имеют одинаковый адрес/хэш в памяти
|
||||
True
|
||||
w1=['A','B']
|
||||
v1=['A','B']
|
||||
@@ -636,6 +767,8 @@ spsk.count('a') #считает количество 'a' в списке
|
||||
### 9.3. Методы для работы с кортежами.
|
||||
```py
|
||||
kortezh = (1, 'a', 'b', 3, 'c', 4)
|
||||
dir(kortezh)
|
||||
['__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']
|
||||
kortezh.count(3) #считает количество 3 в списке
|
||||
1
|
||||
kortezh.index('b') #выводит с каким индексом в кортеже 'b'
|
||||
@@ -646,6 +779,8 @@ kortezh + (5, 6) #добавляет 5, 6 в кортеж
|
||||
### 9.4. Методы для работы со словарями.
|
||||
```py
|
||||
slvr = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
|
||||
dir(slvr)
|
||||
['__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']
|
||||
slvr.keys() #получение ключей словаря
|
||||
dict_keys(['a', 'b', 'c', 'd'])
|
||||
slvr.values() #получение значений словаря
|
||||
@@ -665,6 +800,8 @@ slvr
|
||||
### 9.5. Методы для работы с множествами.
|
||||
```py
|
||||
mng={1,'a',2,'b',3,'c',4}
|
||||
dir(mng)
|
||||
['__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
|
||||
mng.add('d') #добавление в множество mng элемента 'd'
|
||||
mng
|
||||
{1, 2, 3, 'c', 4, 'a', 'b', 'd'}
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
|
||||
### 1. Преобразовал восьмеричное значение 45 в целое число.
|
||||
```py
|
||||
>>> n='45'
|
||||
>>> int(n, 8)
|
||||
>>> int('45', 8)
|
||||
37
|
||||
```
|
||||
### 2. Создал объект-словарь D и затем преобразовал его в два списка: ключей и значений, а затем – эти два списка преобразовал в один кортеж. Кортеж отличается от списка тем, что он неизменяемый.
|
||||
@@ -37,9 +36,9 @@
|
||||
```
|
||||
### 4. Сделал единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево.
|
||||
```py
|
||||
>>> c = ((13 & 27) ^ 14) << 2
|
||||
>>> c
|
||||
28
|
||||
c = ((~(13 & 27)) ^ 14) << 2
|
||||
c
|
||||
-32
|
||||
```
|
||||
|
||||
### 5. Создал список с 4 одинаковыми элементами 'колебат' и написал оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка.
|
||||
@@ -47,10 +46,7 @@
|
||||
>>> spis = ['колебат'] * 4
|
||||
>>> spis
|
||||
['колебат', 'колебат', 'колебат', 'колебат']
|
||||
>>> concatenated = spis[1] + spis[2]
|
||||
>>> concatenated
|
||||
'колебатколебат'
|
||||
>>> 'аткол' in concatenated
|
||||
>>> 'аткол' in (spis[1] + spis[2])
|
||||
True
|
||||
```
|
||||
### 6. Определил список методов, доступных у ранее созданного словаря D. Поочередно использовал его методы keys и values, определил, что можно получить с применением этих методов.
|
||||
@@ -63,16 +59,22 @@ dict_keys(['усиление', 'запаздывание', 'постоянная
|
||||
dict_values([23, 12, 78])
|
||||
```
|
||||
|
||||
### 7. Создала объект - символьную строку с текстом данного предложения. Из символьной строки создала список, элементами которого будут отдельные слова из созданной строки. Заменила в списке элемент «-» на «,». Удалила из списка элемент со значением «данного». Отобразила получившийся список.
|
||||
### 7. Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список.
|
||||
Решение:
|
||||
```py
|
||||
>>> strk = "Создать объект - символьную строку с текстом данного предложения."
|
||||
>>> strk1=strk.split() #разбитие строки на слова
|
||||
>>> strk1
|
||||
strk1
|
||||
['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
|
||||
>>> strk1=[strk2.replace('-', ',') for strk2 in strk1] #замена в списке элемента «-» на «,»
|
||||
>>> strk1
|
||||
|
||||
strk1.index('-')
|
||||
2
|
||||
|
||||
strk1[2] = ','
|
||||
strk1
|
||||
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
|
||||
>>> strk1.remove('данного') #удаление элемента со значением «данного»
|
||||
>>> strk1
|
||||
|
||||
strk1.remove('данного')
|
||||
strk1
|
||||
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.']
|
||||
```
|
||||
Ссылка в новой задаче
Block a user