Сравнить коммиты

...

23 Коммитов
main ... main

Автор SHA1 Сообщение Дата
KorneevMaxA dd259688d1 Изменил(а) на 'TEMA3/test.md'
2 недель назад
KorneevMaxA dafe54dbcc Загрузил(а) файлы в 'TEMA3'
2 недель назад
Пользователь № 16 аудитории Ж-113 1134a80355 ''
2 недель назад
KorneevMaxA ac5e41e70f Изменил(а) на 'TEMA4/report.md'
2 недель назад
KorneevMaxA 43c5a82de1 Изменил(а) на 'TEMA4/report.md'
2 недель назад
KorneevMaxA c2f98c0fed Изменил(а) на 'TEMA4/report.md'
2 недель назад
KorneevMaxA b1f649036b Изменил(а) на 'TEMA4/report.md'
2 недель назад
Максим Корнеев b25f2defa1 Done lab4
2 недель назад
Максим Корнеев 43b8bd5536 done lab3
4 недель назад
Максим Корнеев c9fbe87501 done lab
2 месяцев назад
Максим Корнеев 21374ae0c8 first commit
2 месяцев назад
KorneevMaxA 937634dba1 Изменил(а) на 'TEMA1/test.md'
2 месяцев назад
Пользователь № 4 аудитории Ж-111 e0cb7d48e1 test task
2 месяцев назад
Пользователь № 4 аудитории Ж-111 2133c6037e fix comments1
2 месяцев назад
Пользователь № 4 аудитории Ж-111 9e0f14c49b fix comments
2 месяцев назад
Пользователь № 4 аудитории Ж-111 bae1f50817 added comments
2 месяцев назад
Пользователь № 4 аудитории Ж-111 1a93a3560b fix pictures
2 месяцев назад
Пользователь № 4 аудитории Ж-111 e047de5b42 done report report
2 месяцев назад
Пользователь № 4 аудитории Ж-111 4f9d91440e third fix report
2 месяцев назад
Пользователь № 4 аудитории Ж-111 8c3c68e028 second fix report
2 месяцев назад
Пользователь № 4 аудитории Ж-111 e1eb93a01f first fix report
2 месяцев назад
Пользователь № 4 аудитории Ж-111 056d7d0c95 second commit
2 месяцев назад
Пользователь № 4 аудитории Ж-111 6f25b2d850 firs commit
2 месяцев назад

@ -0,0 +1,5 @@
#Программа по Теме 1 <Корнеев Максим Александрович>
print('Hello')
h=input('Your name=')
import os
os.chdir('C:\\Users\\u111-04\\Desktop\\python-labs\\TEMA1')

Двоичные данные
TEMA1/figure0.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 2.4 KiB

Двоичные данные
TEMA1/figure1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 29 KiB

Двоичные данные
TEMA1/figure2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 15 KiB

Двоичные данные
TEMA1/figure3.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 8.5 KiB

Двоичные данные
TEMA1/figure4.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 47 KiB

Двоичные данные
TEMA1/figure5.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 45 KiB

@ -0,0 +1,108 @@
# Отчет по теме 1
Корнеев Максим, А-01-23
## 1 Изучение среды IDLE
## 1.1 Изучение программы-интерпретатора «Python 3.4 (command line)»
```py
>>> print('Hello')
'Hello'
>>> h=input('Your name=')
'Your name=Maxim'
>>> exit()
```
## 1.2 Настройка текущего каталога
```py
>>> import os
>>> os.chdir('C:\\Users\\u111-04\\Desktop\\python-labs\\TEMA1')
```
## 1.3 Настройка шрифта и размера начального окна
Скриншот настройки шрифта:
![Скриншот настройки шрифта](figure1.png)
Скриншот настройки начального окна:
![Скриншот настройки начального окна](figure2.png)
## 1.4 Объединение инструкций используемых выше в одну программу
Программа в файле pr0
## 1.5 Изучение содержимого файла Pr0.cpython-311.pyc
Скриншот части содержимого файла:
![Скриншот части содержимого файла](figure3.png)
В файле содержится кэш выполнения программы Pr0 в машинном коде
## 1.6 Изучение раздела help
```py
>>> help(print)
'Help on built-in function print in module builtins:
print(*args, sep=' ', end='\n', file=None, flush=False)
Prints the values to a stream, or to sys.stdout by default.
sep
string inserted between values, default a space.
end
string appended after the last value, default a newline.
file
a file-like object (stream); defaults to the current sys.stdout.
flush
whether to forcibly flush the stream.
>>> help(print)
Help on built-in function print in module builtins:
print(*args, sep=' ', end='\n', file=None, flush=False)
Prints the values to a stream, or to sys.stdout by default.
sep
string inserted between values, default a space.
end
string appended after the last value, default a newline.
file
a file-like object (stream); defaults to the current sys.stdout.
flush'
whether to forcibly flush the stream.
Help on built-in function input in module builtins:
input(prompt='', /)
Read a string from standard input. The trailing newline is stripped.
The prompt string, if given, is printed to standard output without a
trailing newline before reading input.
If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
On *nix systems, readline is used if available.
(None, None)
```
## 1.6 Выполнение пункта 15
```py
==================== RESTART: C:\Users\u111-04\Desktop\python-labs\TEMA1\prb1.py ===================
Как Вас зовут? Maxim
Привет, Maxim
>>> import tdemo_chaos
================ RESTART: C:\Users\u111-04\Desktop\python-labs\TEMA1\tdemo_chaos.py ================
```
Скриншот вывода программы tdemo_chaos:
![Скриншот вывода программы tdemo_chaos](figure4.png)
Скриншот окна с примером "Часы":
![Скриншот окна с примером "Часы"](figure5.png)

@ -0,0 +1,11 @@
# Индивидуальное контрольное задание по теме 1
Корнеев Максим, А-03-23
## Задание
Можно ли создавать программы для среды Python с помощью других текстовых редакторов?
## Решение
Можно, если использовать синтаксис языка Python. Можно сохранить файл с расширением *.py.

@ -0,0 +1,379 @@
# Отчет по теме 2
Корнеев Максим, А-03-23
## 1 Изучение простых объектов
```py
>>> f1=16; f2=3
>>> f1,f2
(16, 3)
>>> f1;f2
16
3
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2', 'os']
>>> dir(f1)
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_count', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'is_integer', 'numerator', 'real', 'to_bytes']
>>> type(f2)
<class 'int'>
>>> del f1,f2
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
```
## 2 Изучение правил именования переменных
```py
>>> gg1=1.6
>>> hh1='Строка'
>>> 73sr=3
SyntaxError: invalid decimal literal
>>> and=7
SyntaxError: invalid syntax
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> kw_list=keyword.kwlist
>>> kw_list
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> Gg1=45
>>> gg1
1.6
>>> Gg1
45
```
## 3 Изучение встроенных функций
```py
>>> import builtins
>>> dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BaseExceptionGroup', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EncodingWarning', 'EnvironmentError', 'Exception', 'ExceptionGroup', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'PythonFinalizationError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '_', '_IncompleteInputError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'aiter', 'all', 'anext', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
>>> abs(-10)
10
>>> x=[2,4,9,7]
>>> len(x)
4
>>> max(x)
9
>>> max(3,10)
10
>>> min(x)
2
>>> min(3,10)
3
>>> pow(3,4)
81
>>> pow(3,4,5)
1
>>> round(3.284)
3
>>> round(3.284, 2)
3.28
>>> animal = ['elephant', 'dog', 'crocodile', 'cat', 'kangaroo']
>>> sorted(animal)
['cat', 'crocodile', 'dog', 'elephant', 'kangaroo']
>>> sorted(animal, reverse=True)
['kangaroo', 'elephant', 'dog', 'crocodile', 'cat']
>>> sorted(animal, key=len)
['dog', 'cat', 'elephant', 'kangaroo', 'crocodile']
>>> sum(x)
22
>>> sum(x, start=10)
32
>>> list1 = [1, 2, 4, 5]
>>> list2 = ['apple', 'banana', 'orange']
>>> list3 = list(zip(list1, list2))
>>> list3
[(1, 'apple'), (2, 'banana'), (4, 'orange')]
```
## 4 Изучение простых базовых типов объектов
### 4.1 Логический тип
```py
>>> bb1=True; bb2=False
>>> bb1;bb2
True
False
>>> type(bb1); type(bb2)
<class 'bool'>
<class 'bool'>
```
### 4.2 Другие простые типы
```py
>>> ii1=-1234567890
>>> type(ii1)
<class 'int'>
>>> ff1=-8.9876e-12
>>> type(ff1)
<class 'float'>
>>> dv1=0b1101010
>>> type(dv1)
<class 'int'>
>>> vsm1=0o52765
>>> type(vsm1)
<class 'int'>
>>> shest1=0x7109af6
>>> type(shest1)
<class 'int'>
>>> cc1=2-3j
>>> ype(cc1)
<class 'complex'>
>>> a=3.67; b=-0.45
>>> cc2=complex(a,b)
>>> cc2
(3.67-0.45j)
>>> type(a); type(b)
<class 'float'>
<class 'float'>
>>> type(cc2)
<class 'complex'>
```
### 4.3 Строка символов
```py
>>> ss1='Это - строка символов'
>>> ss1
'Это - строка символов'
>>> ss1="Это - строка символов"
>>> ss1
'Это - строка символов'
>>> ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
>>> print(ss1a)
Это - " строка символов ",
выводимая на двух строках
>>> ss1b= 'Меня зовут: \n КорнеевМА'
>>> print(ss1b)
Меня зовут:
КорнеевМА
>>> mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
>>> print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
>>> ss1[0]
'Э'
>>> ss1[8]
'р'
>>> ss1[-2]
'о'
>>> ss1[6:9]
'стр'
>>> ss1[13:]
'символов'
>>> ss1[:13]
'Это - строка '
>>> ss1[5:-8]
' строка '
>>> ss1[3:17:2]
' тоасм'
>>> ss1[17:3:-2] #Часть строки – с 17-го по 3-й индексы с шагом 2
'омсаот '
>>> ss1[-4:3:-2]
'омсаот '
>>> ss1[4]='='
Traceback (most recent call last):
File "<pyshell#106>", line 1, in <module>
ss1[4]='='
TypeError: 'str' object does not support item assignment
>>> ss1=ss1[:4]+'='+ss1[5:]
>>> ss1
'Это = строка символов'
>>> print(ss1b[8:-5])
>>> ут:
Корн
>>> ss1b[-3:4:-3]
'внК уз'
>>> ss1b[0:7:2]
'Мн о'
```
### 4.4 Обобщение
```py
>>> dd1=True
>>> type(dd1), dd1
(<class 'bool'>, True)
>>> dd2=473
>>> type(dd2), dd2
(<class 'int'>, 473)
>>> dd3=-34.562
>>> type(dd3), dd3
(<class 'float'>, -34.562)
>>> dd4=7.3-4.2j
>>> type(dd4), dd4
(<class 'complex'>, (7.3-4.2j))
>>> dd5='киси-киси мяу-мяу, киси-киси мя-мя-мяу'
>>> type(dd5), dd5
(<class 'str'>, 'киси-киси мяу-мяу, киси-киси мя-мя-мяу')
```
## 5 Более сложные типы объектов
### 5.1 Список
```py
>>> spis1=[111,'Spisok',5-9j]
>>> stup=[0,0,1,1,1,1,1,1,1]
>>> spis=[1,2,3,4,
5,6,7,
8,9,10]
>>> spis1[-1]
(5-9j)
>>> stup[-8::2]
[0, 1, 1, 1]
```
В полученный список вошли элементы из списка stup с индексами 1, 3, 5, 7.
```py
>>> spis1[1]='Список'
>>> spis1
[111, 'Список', (5-9j)]
>>> len(spis1)
3
>>> dir(spis1)
['__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']
>>> spis1.append('New item')
>>> spis1+['New item']
[111, 'Список', (5-9j), 'New item', 'New item']
>>> spis1.append(ss1b)
>>> spis1
[111, 'Список', (5-9j), 'New item', 'Меня зовут: \n КорнеевМА']
>>> spis1.pop(1)
'Список'
>>> spis1.insert(1, 'Hello')
>>> spis1
[111, 'Hello', (5-9j), 'New item', 'Меня зовут: \n КорнеевМА']
>>> spis1.remove('Hello')
>>> spis1
[111, (5-9j), 'New item', 'Меня зовут: \n КорнеевМА']
>>> spis1.extend(stup)
>>> spis1
[111, (5-9j), 'New item', 'Меня зовут: \n КорнеевМА', 0, 0, 1, 1, 1, 1, 1, 1, 1]
>>> clspis=[123, (2-4j), 'Raq1']
>>> clspis.clear()
>>> clspis
[]
>>> new_list = [3, 1, 4, 1, 5, 9]
>>> new_list.sort()
>>> new_list
[1, 1, 3, 4, 5, 9]
>>> new_list.reverse()
>>> new_list
[9, 5, 4, 3, 1, 1]
>>> copy_list = new_list.copy()
>>> copy_list
[9, 5, 4, 3, 1, 1]
>>> new_list.count(1)
2
>>> new_list.index(3)
3
>>> spis2=[spis1,[4,5,6,7]]
>>> spis2
[[111, (5-9j), 'New item', 'Меня зовут: \n КорнеевМА', 0, 0, 1, 1, 1, 1, 1, 1, 1], [4, 5, 6, 7]]
>>> spis2[0][1]
(5-9j)
>>> spis2[0][1]=78
>>> spis2
[[111, 78, 'New item', 'Меня зовут: \n КорнеевМА', 0, 0, 1, 1, 1, 1, 1, 1, 1], [4, 5, 6, 7]]
>>> spis1
[111, 78, 'New item', 'Меня зовут: \n КорнеевМА', 0, 0, 1, 1, 1, 1, 1, 1, 1]
```
spis1 изменился так как в spis2[0] хранится не копия spis1, а ссылка на него.
```py
>>> my_list=[23, 'stroka', False, [2, 3]]
```
### 5.2 Объект-кортеж
```py
>>> kort1=(222,'Kortezh',77+8j)
>>> kort1= kort1+(1,2)
>>> kort1
(222, 'Kortezh', (77+8j), 1, 2)
>>> kort1= kort1+(ss1b,)
>>> kort1
(222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n КорнеевМА')
>>> kort2=kort1[:2]+kort1[3:]
>>> kort2
(222, 'Kortezh', 1, 2, 'Меня зовут: \n КорнеевМА')
>>> kort1.index(2)
4
>>> kort1.count(222)
1
>>> kort1[2]=90
Traceback (most recent call last):
File "<pyshell#210>", line 1, in <module>
kort1[2]=90
TypeError: 'tuple' object does not support item assignment
>>> kort3=(24, 'well', [True, False], (2+3j, 'od'))
```
### 5.3 Объект-словарь
```py
>>> dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
>>> dic1['Orel']
56
>>> dic1['Pskov']=78
>>> dic1
{'Saratov': 145, 'Orel': 56, 'Vologda': 45, 'Pskov': 78}
>>> sorted(dic1.keys())
['Orel', 'Pskov', 'Saratov', 'Vologda']
>>> sorted(dic1.values())
[45, 56, 78, 145]
>>> dic2={1:'mean',2:'standart deviation',3:'correlation'}
>>> dic3={'statistics':dic2,'POAS':['base','elementary','programming']}
>>> dic3
{'statistics': {1: 'mean', 2: 'standart deviation', 3: 'correlation'}, 'POAS': ['base', 'elementary', 'programming']}
>>> dic3['statistics'][2]
'standart deviation'
>>> dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)])
>>> dic4
{1: ['A', 'B', 'C'], 2: [4, 5], 'Q': 'Prim', 'Stroka': 'Меня зовут: \n КорнеевМА'}
>>> dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b]))
>>> dic5
{'A': 16, 'B': -3, 'C': 9, 'Stroka': 'Меня зовут: \n КорнеевМА'}
>>> kort3=(4, 5, 'ara', 2, 'sorc', 19, 3)
>>> list4=['wet', '>_<',423,0,52]
>>> dic6=dict(zip(kort3,list4))
>>> dic6
{4: 'wet', 5: '>_<', 'ara': 423, 2: 0, 'sorc': 52}
```
В словаре 5 элементов так как функция zip() останавливается на длине самой короткой последовательности.
```py
>>> AVTI={'Курс I':[22,23,17,24,30,29,28,25,23,0,4,31,30,33,18,12,27],'Курс II':[18,16,12,15,29,18,21,23,13,0,4,20,31,26,16,], 'Курс III':[17,12,0,6,17,15,19,19,0,0,5,17,22,18,12], 'Курс IV':[27,16,0,13,17,15,19,20,0,0,2,15,18,16,17]}
>>> AVTI['Курс III'][5]
15
```
### 5.4 Объект-множество
```py
>>> mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
>>> mnoz1
{'двигатель', 'линия связи', 'микропроцессор', 'датчик'}
>>> len(mnoz1)
4
>>> 'датчик' in mnoz1
True
>>> mnoz1.add('реле')
>>> mnoz1
{'двигатель', 'датчик', 'реле', 'линия связи', 'микропроцессор'}
>>> mnoz1.remove('линия связи')
>>> mnoz1
{'двигатель', 'датчик', 'реле', 'микропроцессор'}
>>> mnoz2={21,'строка', 21, (4, 2), '4', 4}
>>> mnoz2
{'4', 4, 'строка', 21, (4, 2)}
>>> len(mnoz2)
5
>>> 'датчик' in mnoz2
False
>>> mnoz2.add('cat')
>>> mnoz2.remove('4')
>>> mnoz2
{4, 'строка', 21, 'cat', (4, 2)}
```

@ -0,0 +1,38 @@
# Общее контрольное задание по теме 2
Корнеев Максим, А-03-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
* Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
* Создать переменную со значением, совпадающим с первой буквой из familia.
* Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
* Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
* Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
* Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
* Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
* Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
## Решение
```py
>>> familia='Korneev'
>>> first_letter=familia[0]
>>> first_letter
'K'
>>> sp_kw=keyword.kwlist
>>> sp_kw
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> sp_kw.remove('nonlocal')
>>> sp_kw
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> kort_nam=('Максим', 'Даня', 'Дима', 'Артем')
>>> type(kort_nam)
<class 'tuple'>
>>> kort_nam = kort_nam + ('Давид','Дима')
>>> kort_nam.count('Дима')
2
>>> dict_bas={'строка': ['familia', 'first_letter'], 'список': 'sp_kw', 'кортеж': 'kort_nam'}
```

@ -0,0 +1,702 @@
# Отчет по теме 3
Корнеев Максим, А-03-23
## 1 Преобразование простых базовых типов объектов.
### 1.1 Преобразование в логический тип
```py
>>> 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'>
```
### 1.2 Преобразование в численные типы
```py
>>> 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#26>", line 1, in <module>
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
```
Диагностическое сообщение выдано так как команда int ожидает, что ей сообщат строку (только цифры, может быть знак в начале). Здесь есть точка, поэтому возникает несоответствие ожидаемого формата. Нужно сначала переопределить это число как float, а потом уже применить команду int.
```py
>>> 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")
>>> flt3
inf
>>> type(flt4)
<class 'float'>
```
### 1.3 Преобразование десятичных чисел в другие системы счисления
```py
>>> 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
>>> int(vos1,8)
123
>>> int(shs1,16)
123
```
## 2 Преобразование более сложных типов объектов
### 2.1 Преобразование в строку символов
```py
>>> strk1=str(23.6)
>>> strk1
'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}"
```
### 2.2 Преобразование элементов объекта в список
```py
>>> 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=list({"A":1,"B":2,"C":9}.values())
>>> spis3
[1, 2, 9]
```
### 2.3 Преобразование элементов объектов в кортеж
```py
>>> kort7=tuple('Строка символов')
>>> kort7
('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в')
>>> kort8=tuple(spis2)
>>> kort8
(124, 236, -15, 908)
>>> kort9=tuple({"A":1,"B":2,"C":9})
>>> kort9
('A', 'B', 'C')
```
### 2.4 Удаление объектов
```py
>>> del strk5, kort8
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'dv1', 'flt1', 'flt2', 'flt3', 'flt4', 'hh', 'kort7', 'kort9', 'logiz1', 'logiz2', 'logiz3', 'logiz4', 'shs1', 'spis1', 'spis2', 'spis3', 'strk1', 'strk2', 'strk3', 'strk4', 'tt1', 'tt2', 'tt3', 'tt4', 'vos1']
```
Создадим строку с моей фамилией и инициалами. Преобразуем её в список, затем список - в кортеж, затем кортеж - в строку.
```py
>>> familia = 'КорнеевМА'
>>> f_spis=list(familia)
>>> f_spis
['К', 'о', 'р', 'н', 'е', 'е', 'в', 'М', 'А']
>>> f_kort=tuple(f_spis)
>>> f_kort
('К', 'о', 'р', 'н', 'е', 'е', 'в', 'М', 'А')
>>> f_str=str(f_kort)
>>> f_str
"('К', 'о', 'р', 'н', 'е', 'е', 'в', 'М', 'А')"
```
## 3 Арифметические операции
### 3.1 Сложение и вычитание (+ и -)
```py
>>> 12+7+90
109
>>> 5.689e-1 - 0.456
0.11289999999999994
>>> 23.6+54
77.6
>>> 14-56.7+89
46.3
```
### 3.2 Умножение (*)
```py
>>> -6.7*12
-80.4
```
### 3.3 Деление (/)
```py
>>> -234.5/6
-39.083333333333336
>>> a=178/45
>>> a
>>> 3.9555555555555557
>>> type(a)
<class 'float'>
```
### 3.4 Деление с округлением вниз (//)
```py
>>> b=178//45
>>> b
3
>>> type(b)
<class 'int'>
>>> c=-24.6//12.1
>>> c
-3.0
>>> type(c)
<class 'float'>
```
### 3.5 Получение остатка от деления (%)
```py
>>> 148%33
16
>>> 12.6%3.8
1.2000000000000002
>>> 15%2.3
1.200000000000001
>>> 13.2%2
1.1999999999999993
```
### 3.6 Возведение в степень (**)
```py
>>> 14**3
2744
>>> e=2.7**3.6
>>> e
35.719843790663525
>>> 13.4**4
32241.793600000005
>>> 11**4.3
30059.970232379124
```
Попробуем операции с участием комплексных чисел:
```py
>>> c1=2-3j
>>> c2=1+4j
>>> c1+c2
(3+1j)
>>> c1+2
(4-3j)
>>> c2-3
(-2+4j)
>>> c2*c1
(14+5j)
>>> c2*3
(3+12j)
>>> c1/5
(0.4-0.6j)
>>> 12/c2
(0.7058823529411765-2.823529411764706j)
>>> c1**2
(-5-12j)
>>> 2**c1
(-1.947977671863125-3.493620327099486j)
>>> c1**c2
(-98.43395342485856-155.17660426903427j)
```
Из используемых выше операций нельзя использовать с комплексными аргументами деление с округлением вниз (//) и получение остатка от деления (%)
## 4 Операции с двоичными представлениями целых чисел
### 4.1 Двоичная инверсия (~)
```py
>>> dv1=9
>>> bin(dv1)
'0b1001'
>>> dv2=~dv1
>>> bin(dv2)
'-0b1010'
>>> dv2
-10
```
Результат не совпадает с ожидаемым видом "0110". Это происходит, потому что в python под инверсией подразумевается смена всех 0 на 1, 1 на 0, а еще смена знака. Было число 9 (1001), меняем все значения на противоположные (0110), затем надо поменять знак (это значит, что надо инвертировать все значения разрядов - будет 1001) и прибавить к полученному числу единицу (которая отвечает за знак), получаем число 1010.
### 4.2 Двоичное «И» (&)
```py
>>> 7&9
1
>>> bin(7&9)
'0b1'
>>> 7&8
0
>>> bin(7&8)
'0b0'
```
### 4.3 Двоичное «ИЛИ» (|)
```py
>>> 7|9
15
>>> bin(7|9)
'0b1111'
>>> 7|8
15
>>> bin(7|8)
'0b1111'
>>> 14|5
15
>>> bin(14|5)
'0b1111'
```
### 4.4 Двоичное «исключающее ИЛИ»(^)
```py
>>> 14^5
11
>>> bin(14^5)
'0b1011'
```
### 4.5 Сдвиг двоичного представления на заданное число разрядов
```py
>>> h=14
>>> bin(h)
'0b1110'
>>> g=h<<2
>>> bin(g)
'0b111000'
>>> g1=h>>1
>>> bin(g1)
'0b111'
>>> g2=h>>2
>>> bin(g2)
'0b11'
```
Возьмём два числа 92 и 201. Проведём с ними двоичные операции:
```py
>>> g3=92
>>> bin(g3)
'0b1011100'
>>> g4=201
>>> bin(g4)
'0b11001001'
>>> g5=~g3
>>> g5
-93
>>> bin(g5)
'-0b1011101'
>>> g3&g4
72
>>> bin(g3&g4)
'0b1001000'
>>> g3|g4
221
>>> bin(g3|g4)
'0b11011101'
>>> g3^g4
149
>>> bin(g3^g4)
'0b10010101'
>>> g3<<2
368
>>> bin(g3<<2)
'0b101110000'
>>> g4>>3
25
>>> bin(g4>>3)
'0b11001'
```
## 5 Операции при работе с последовательностями
### 5.1 Объединение последовательностей (конкатенация)(+)
```py
>>> 'Система '+'регулирования'
'Система регулирования'
>>> ['abc','de','fg']+['hi','jkl']
['abc', 'de', 'fg', 'hi', 'jkl']
>>> ('abc','de','fg')+('hi','jkl')
('abc', 'de', 'fg', 'hi', 'jkl')
```
### 5.2 Повторение (*)
```py
>>> 'ля-'*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)
```
### 5.3 Проверка наличия заданного элемента в последовательности (in)
```py
>>> stroka='Система автоматического управления'
>>> 'автомат' in stroka
True
>>> 'ку' in ['ку','-']*3
True
>>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')
False
```
### 5.4 Подстановка значений в строку с помощью оператора «%»
```py
>>> stroka='Температура = %g %s %g'
>>> stroka
'Температура = %g %s %g'
>>> stroka % (16,' меньше ',25)
'Температура = 16 меньше 25'
>>> stroka='Температура = %(zn1)g %(sravn)s %(zn2)g'
>>> stroka
'Температура = %(zn1)g %(sravn)s %(zn2)g'
>>> stroka % {'zn1':16,'sravn':' меньше ','zn2':25}
'Температура = 16 меньше 25'
```
## 6 Оператор присваивания
### 6.1 Обычное присваивание значения переменной (=)
```py
>>> zz=-12
>>> zz
-12
```
### 6.2 Умножение текущего значения переменной на заданную величину (*=) или деление (/=)
```py
>>> zz/=2
>>> zz
-6.0
>>> zz*=5
>>> zz
-30.0
>>> strk='Hello'
>>> strk*=4
>>> strk
'HelloHelloHelloHello'
```
### 6.3 Операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведения в степень(**=)
```py
>>> a=30
>>> a//=4
>>> a
7
>>> a%=4
>>> a
3
>>> a**=3
>>> a
27
```
### 6.4 Множественное присваивание
```py
>>> w=v=10
>>> w
10
>>> v
10
>>> n1,n2,n3=(11,-3,'all')
>>> n1
11
>>> n2
-3
>>> n3
'all'
>>> n1,n2,n3='a21'
>>> n1
'a'
>>> n2
'2'
>>> n3
'1'
>>> n1,n2,n3=[11,-3,'all']
>>> n1
11
>>> n2
-3
>>> n3
'all'
>>> n1,n2,n3={'sq':1, 'wew':'let', 'roar':-2}
>>> n1
'sq'
>>> n2
'wew'
>>> n3
'roar'
>>> n1,n2,n3={'sq':1, 'wew':'let', 'roar':-2}.values()
>>> n1
1
>>> n2
'let'
>>> n3
-2
>>> n1,n2,n3={11,-3,'all'}
>>> n1
'all'
>>> n2
11
>>> n3
-3
```
## 7 Логические операции
### 7.1 Операции сравнения
```py
>>> w
10
>>> v
10
>>> w==v
True
>>> w!=v
False
>>> w<v
False
>>> w>v
False
>>> w<=v
True
>>> w>=v
True
```
### 7.2 Проверка наличия заданного элемента в последовательности или во множестве, а также проверка наличия ключа в словаре (in)
```py
>>> 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
```
### 7.3 Создание больших логических выражений с использованием соединительных слов
```py
>>> a=17
>>> b=-6
>>> (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
True
>>> ('cap' in mnoz1) or not (a<b)
True
>>> ('Pskov' in dic1) or ('pen' in mnoz1) and ('Vologda' in dic1)
True
```
### 7.4 Проверка ссылок переменных на один и тот же объект (is)
```py
>>> w=v=10
>>> w is v
True
>>> w1=['A','B']
>>> v1=['A','B']
>>> w1 is v1
False
```
Оператор is проверяет, ссылаются ли объекты на один и тот же адрес в памяти. Переменные целочисленного типа были созданы в одну строку и имеют один и тот же адрес в памяти. Списки были созданы в разных строках, и адреса у них разные, т.е. они ссылаются на разные участки в памяти, поэтому is возвращает False.
## 8 Операции с объектами, выполняемые с помощью методов
### 8.1 Методы для работы со строками
```py
>>> 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']
>>> stroka.find('пр')
5
>>> stroka.count("с")
4
>>> stroka.replace(' у',' автоматического у')
'Микропроцессорная система автоматического управления'
>>> spis22=stroka.split(' ')
>>> spis22
['Микропроцессорная', 'система', 'управления']
stroka.upper()
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
>>> stroka3=" ".join(spis22)
>>> stroka3
'Микропроцессорная система управления'
>>> stroka3.partition("с")
('Микропроце', 'с', 'сорная система управления')
>>> stroka3.rpartition("с")
('Микропроцессорная си', 'с', 'тема управления')
>>> 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'
```
### 8.2 Методы для работы со списками
```py
>>> spsk=['a', 21, -2, 'Maxim', 0]
>>> spsk.pop(2) # вывод элемента с указанным индексом и удаление его из списка
-2
>>> spsk
['a', 21, 'Maxim', 0]
>>> spsk.append('c') # добавляение переданного элемента в конец списка
>>> spsk
['a', 21, 'Maxim', 0, 'c']
>>> spsk.insert(2,'a') # добавление в список элемента в указанный индекс, сдвигая следующие элементы
>>> spsk
['a', 21, 'a', 'Maxim', 0, 'c']
>>> spsk.count('a') # вывод колличества вхождений в список указанного элемента
2
```
### 8.3 Методы для работы с кортежами
```py
>>> cor = (1, 'a', 'b', 0.05, 10+3j) # Создание кортежа
>>> cor.count(1) # Подсчет количества элементов по значению
1
>>> cor.index(0.05) # Поиск индекса первого вхождения
3
>>> cor.index('d')
Traceback (most recent call last):
File "<pyshell#172>", line 1, in <module>
cor.index('d')
ValueError: tuple.index(x): x not in tuple
```
### 8.3 Методы для работы со словарями и множествами
Методы словарей:
```py
>>> dct1
{'Institut': ['AVTI', 'IEE', 'IBB'], 'Depart': ['UII', 'PM', 'VMSS', 'MM'], 'gruppa': ['A-01-15', 'A-02-15']}
>>> new_dct1=dct1.copy() # Создается копия, но новые значения ссылаются на предыдущие
>>> new_dct1
{'Institut': ['AVTI', 'IEE', 'IBB'], 'Depart': ['UII', 'PM', 'VMSS', 'MM'], 'gruppa': ['A-01-15', 'A-02-15']}
>>> dct1.get('Depart') # Возвращение значения по ключу
['UII', 'PM', 'VMSS', 'MM']
>>> dct1.keys() # Возвращение объекта только из ключей
dict_keys(['Institut', 'Depart', 'gruppa'])
>>> dct1.values() # Возвращение объекта только из значений
dict_values([['AVTI', 'IEE', 'IBB'], ['UII', 'PM', 'VMSS', 'MM'], ['A-01-15', 'A-02-15']])
>>> new_dct1.clear() # Полное очищение списка
>>> new_dct1
{}
>>> dct1.pop('Depart') # Удаление ключа и возвращение значения
['UII', 'PM', 'VMSS', 'MM']
>>> dct1
{'Institut': ['AVTI', 'IEE', 'IBB'], 'gruppa': ['A-01-15', 'A-02-15']}
```
Методы множеств:
```py
>>> mnoz1={1, 'датчик', False, 256, 'двигатель'}
>>> mnoz1
{False, 256, 1, 'двигатель', 'датчик'}
>>> mnoz1.add(10+7j) # Добавление элемента
>>> mnoz1
{False, 256, 1, 'двигатель', 'датчик', (10+7j)}
>>> mnoz2=mnoz1.copy() # Создание копии
>>> mnoz2
{False, 256, 1, 'двигатель', 'датчик', (10+7j)}
>>> mnoz1.remove(1) # Удаление элемента по значению
>>> mnoz1
{False, 256, 'двигатель', 'датчик', (10+7j)}
>>> mnoz2.clear() # Очищение множества
>>> mnoz2
set()
>>> mnoz1.pop() # Удаление случайного элемента из множества
False
>>> mnoz1
{256, 'двигатель', 'датчик', (10+7j)}
>>> mnoz1.update({True, 'b'}) # Добавление элементов
>>> mnoz1
{256, True, 'b', 'двигатель', 'датчик', (10+7j)}
```

@ -0,0 +1,71 @@
# Общее контрольное задание по теме 3
Корнеев Максим, А-03-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
* Преобразовать восьмеричное значение 45 в целое число.
* Создать объект-словарь D со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка?
* Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4.
* Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево.
* Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка.
* Определить список методов, доступных у ранее созданного словаря D. Поочередно использовать его методы keys и values, определить, что можно получить с применением этих методов.
* Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки. Заменить в списке элемент «-» на «,». Удалить из списка элемент со значением «данного». Отобразить получившийся список.
## Решение
```py
>>> h=int('45',8)
>>> h
37
>>> D={"усиление":23, "запаздывание":12, "постоянная времени":78}
>>> spis1=list(D)
>>> spis1
['усиление', 'запаздывание', 'постоянная времени']
>>> spis2=list(D.values())
>>> spis2
[23, 12, 78]
>>> kort1=tuple(spis1)
>>> kort1
('усиление', 'запаздывание', 'постоянная времени')
>>> kort2=tuple(spis2)
>>> kort2
(23, 12, 78)
>>> kort=kort1+kort2
>>> kort # Список отличается от кортежа тем, что список изменяем, а кортеж нет.
('усиление', 'запаздывание', 'постоянная времени', 23, 12, 78)
>>> ((1768//24.8)%3)**2.4
5.278031643091577
>>> (~(13&27)^14)<<2
-32
>>> spis3=['колебат']*4
>>> spis3
['колебат', 'колебат', 'колебат', 'колебат']
>>> 'аткол' in spis3[1]+spis3[2]
True
>>> dir(D)
['__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']
>>> D.keys()
dict_keys(['усиление', 'запаздывание', 'постоянная времени'])
>>> D.values()
dict_values([23, 12, 78])
>>> strk='Создать объект - символьную строку с текстом данного предложения.'
>>> strk
'Создать объект - символьную строку с текстом данного предложения.'
>>> spis=strk.split(' ')
>>> spis
['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
>>> spis.index('-')
2
>>> spis.pop(2)
'-'
>>> spis.insert(2,',')
>>> spis
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения.']
>>> spis.remove('данного')
>>> spis
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.']
```

@ -0,0 +1,60 @@
# Тест по модулю 1
Корнеев Максим, А-03-23
## Задание
1)Можно ли работать со средой без использования интерактивной оболочки IDLE?
2)Создайте объект-строку, содержащую текст данного предложения. Напишите инструкцию, доказывающую, что создан объект именно требуемого типа. Напишите инструкцию отображения списка атрибутов созданного объекта.
3)Напишите инструкцию, выделяющую из строки подстроку, содержащую только символы с нечетными номерами позиций. Отобразите получившийся объект. Напишите инструкцию, позволяющую определить число символов в подстроке.
4)Напишите инструкцию преобразования строки в кортеж. Отобразите получившийся объект. Подсчитайте число элементов полученного кортежа.
5)Напишите инструкцию, разделяющую строку на две подстроки, примерно одинаковой длины. Проверьте, входит ли контекст "дан" в первую и вторую подстроки
## Решение
1) Можно, можно использовать другие среды разработки.
2)
```py
>>> srtoka = 'Создайте объект-строку, содержащую текст данного предложения.'
>>> type(srtoka)
<class 'str'>
>>> dir(srtoka)
['__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']
```
3)
```py
>>> podstroka = srtoka[::2]
>>> print(podstroka)
Сзат бетсрк,сдрау ес анг рдоеи.
>>> len(podstroka)
31
```
4)
```py
>>> kortz = tuple(srtoka)
>>> kortz
('С', 'о', 'з', 'д', 'а', 'й', 'т', 'е', ' ', 'о', 'б', 'ъ', 'е', 'к', 'т', '-', 'с', 'т', 'р', 'о', 'к', 'у', ',', ' ', 'с', 'о', 'д', 'е', 'р', 'ж', 'а', 'щ', 'у', 'ю', ' ', 'т', 'е', 'к', 'с', 'т', ' ', 'д', 'а', 'н', 'н', 'о', 'г', 'о', ' ', 'п', 'р', 'е', 'д', 'л', 'о', 'ж', 'е', 'н', 'и', 'я', '.')
>>> len(kortz)
61
```
5)
```py
>>> a = srtoka[:len(srtoka)//2
b = srtoka[len(srtoka)//2:]
>>> a
'Создайте объект-строку, содерж'
>>> b
'ащую текст данного предложения.'
>>> 'дан' in a
False
>>> 'дан' in b
True
```

Двоичные данные
TEMA4/Ris1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 20 KiB

Двоичные данные
TEMA4/Ris2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 15 KiB

Двоичные данные
TEMA4/Ris3.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 6.0 KiB

Двоичные данные
TEMA4/Ris4.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 8.3 KiB

Двоичные данные
TEMA4/Ris5.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 26 KiB

@ -0,0 +1,261 @@
# Отчет по теме 4
Корнеев Максим, А-03-23
## 1 Стандартные функции
### 1.1 Функция round
```py
>>> a = round(123.456,1)
>>> a
123.5
>>> type(a)
<class 'float'>
>>> b = round(123.456,0)
>>> b
123.0
>>> type(b)
<class 'float'>
>>> c = round(123.456)
>>> c
123
>>> type(c)
<class 'int'>
```
### 1.2 Функция range
```py
>>> gg=range(76,123,9)
>>> list(gg)
[76, 85, 94, 103, 112, 121]
>>> list(range(23))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
```
Список со значениями от 0 до 22 с шагом 1
### 1.3 Функция zip
```py
>>> qq = ['Корнеев','Гордиевских','Виноградов','Веретельников']
>>> ff=zip(gg,qq)
>>> tuple(ff)
((76, 'Корнеев'), (85, 'Гордиевских'), (94, 'Виноградов'), (103, 'Веретельников'))
>>> ff[0]
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
ff[0]
TypeError: 'zip' object is not subscriptable
```
### 1.4 Функция eval
```py
>>> fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=0.75
>>> dan
-152.25
```
### 1.5 Функция exec
```py
>>> exec(input('введите инструкции:'))
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
>>> gg
221.456
```
### 1.6 Некоторые другие функции
```py
>>> abs(-123.8)
123.8
>>> pow(3,4,5)
1
>>> max([2,3,8,0,4,19])
19
>>> min([2,3,8,0,4,19])
0
>>> sum([2,3,8,0,4,19])
36
>>> divmod(5,2)
(2, 1)
>>> len([2,3,8,0,4,19])
6
>>> list(map(str, [1,2,3]))
['1', '2', '3']
```
## 2 Функции из стандартного модуля math
```py
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fma', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'sumprod', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
>>> math.factorial(5)
120
>>> math.sin(0)
0.0
>>> math.acos(1)
0.0
>>> math.degrees(1)
57.29577951308232
>>> math.radians(57.29577951308232)
1.0
>>> math.exp(1)
2.718281828459045
>>> math.log(10,10)
1.0
>>> math.log10(100)
2.0
>>> math.sqrt(4)
2.0
>>> math.ceil(1.1)
2
>>> math.floor(2.9)
2
>>> math.pi
3.141592653589793
>>> math.sin((2*math.pi)/(7+math.exp(0.23)))
0.6895048136223224
```
## 3 Функции из модуля cmath
```py
>>> dir(cmath)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau']
>>> cmath.sqrt(1.2-0.5j)
(1.118033988749895-0.22360679774997896j)
>>> cmath.phase(1-0.5j)
-0.4636476090008061
```
## 4 Стандартный модуль random
```py
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_ONE', '_Sequence', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_fabs', '_floor', '_index', '_inst', '_isfinite', '_lgamma', '_log', '_log2', '_os', '_parse_args', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', 'betavariate', 'binomialvariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'main', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>> random.seed()
>>> random.random()
0.09784937641299252
>>> random.uniform(0,1)
0.7586998848425669
>>> random.randint(1,10)
5
>>> random.gauss(1,1)
1.4114397784493207
>>> random.choice([0,3,4,12])
3
>>> ss=[0,3,4,12]
>>> random.shuffle(ss)
>>> ss
[12, 4, 3, 0]
>>> random.sample(ss,2)
[3, 12]
>>> random.betavariate(1,1)
0.6955346411563408
>>> random.gammavariate(1,1)
1.2069826359988067
>>> spisok = [random.uniform(0, 1), random.gauss(0, 1), random.betavariate(1, 1), random.gammavariate(1, 1)]
>>> spisok
[0.976567712925113, 0.9183429804998575, 0.5079068978092008, 1.7131944904872685]
```
## 5 Функции из модуля time
```py
>>> dir(time)
['CLOCK_MONOTONIC', 'CLOCK_MONOTONIC_RAW', 'CLOCK_MONOTONIC_RAW_APPROX', 'CLOCK_PROCESS_CPUTIME_ID', 'CLOCK_REALTIME', 'CLOCK_THREAD_CPUTIME_ID', 'CLOCK_UPTIME_RAW', 'CLOCK_UPTIME_RAW_APPROX', '_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock_getres', 'clock_gettime', 'clock_gettime_ns', 'clock_settime', 'clock_settime_ns', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname', 'tzset']
>>> c1=time.time()
>>> c1
1760129676.087689
>>> c2=time.time()-c1
>>> c2
0.29564905166625977
>>> dat=time.gmtime()
>>> dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=20, tm_min=55, tm_sec=16, tm_wday=4, tm_yday=283, tm_isdst=0)
>>> dat.tm_mon
10
>>> dat.tm_year
2025
>>> dat.tm_hour
20
>>> dat.tm_mday
10
>>> time.localtime()
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=57, tm_sec=26, tm_wday=4, tm_yday=283, tm_isdst=0)
>>> time.asctime(dat)
'Fri Oct 10 20:55:16 2025'
>>> time.ctime()
'Fri Oct 10 23:58:50 2025'
>>> time.sleep(1) # Программа прервала свою работу на 1 секунду
>>> time.mktime(dat)
1760118916.0
>>> time.localtime(c1)
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=54, tm_sec=36, tm_wday=4, tm_yday=283, tm_isdst=0)
```
## 6 Графические функции
```py
>>> x=list(range(-3,55,4))
>>> t=list(range(15))
>>> pylab.plot(t,x)
>>> pylab.title('Первый график')
>>> pylab.xlabel('время')
>>> pylab.ylabel('сигнал')
>>> pylab.show()
```
Первый график:
![Первый график](Ris1.png)
```py
>>> X1=[12,6,8,10,7]
>>> X2=[5,7,9,11,13]
>>> pylab.plot(X1)
>>> pylab.plot(X2)
>>> pylab.show()
```
Второй график:
![Второй график](Ris5.png)
```py
>>> region=['Центр','Урал','Сибирь','Юг']
>>> naselen=[65,12,23,17]
>>> pylab.pie(naselen,labels=region)
>>> pylab.show()
```
Третий график:
![Третий график](Ris2.png)
```py
>>> a = [1, 2, 5, 1, 5, 3, 2, 3, 1, 2, 1, 1, 2]
>>> pylab.hist(a)
>>> pylab.show()
```
Четвертый график:
![Четвертый график](Ris3.png)
```py
>>> pylab.bar(region, naselen)
>>> pylab.show()
```
Пятый график:
![Пятый график](Ris4.png)
## 7 Статистический модуль statistic
```py
>>> dir(statistics)
['Counter', 'Decimal', 'Fraction', 'LinearRegression', 'NormalDist', 'StatisticsError', '_SQRT2', '__all__', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_decimal_sqrt_of_frac', '_exact_ratio', '_fail_neg', '_float_sqrt_of_frac', '_integer_sqrt_of_frac_rto', '_isfinite', '_kernel_invcdfs', '_mean_stdev', '_newton_raphson', '_normal_dist_inv_cdf', '_quartic_invcdf', '_quartic_invcdf_estimate', '_random', '_rank', '_sqrt_bit_width', '_sqrtprod', '_ss', '_sum', '_triweight_invcdf', '_triweight_invcdf_estimate', 'acos', 'asin', 'atan', 'bisect_left', 'bisect_right', 'correlation', 'cos', 'cosh', 'count', 'covariance', 'defaultdict', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean', 'groupby', 'harmonic_mean', 'hypot', 'isfinite', 'isinf', 'itemgetter', 'kde', 'kde_random', 'linear_regression', 'log', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'multimode', 'namedtuple', 'numbers', 'pi', 'pstdev', 'pvariance', 'quantiles', 'random', 'reduce', 'repeat', 'sin', 'sqrt', 'stdev', 'sumprod', 'sys', 'tan', 'tau', 'variance']
>>> statistics.median(naselen)
20.0
>>> statistics.variance(naselen)
588.25
>>> x = [1,2,3,4,5]
>>> y = [3,4,6,8,13]
>>> statistics.correlation(x,y)
0.9577042613611466
>>> k, b = statistics.linear_regression(x,y)
>>> k; b
2.4
-0.39999999999999947
```

@ -0,0 +1,45 @@
# Общее контрольное задание по теме 4
Корнеев Максим, А-03-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
* Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
* Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
* Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
* Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
* Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
* Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
## Решение
```py
>>> import cmath
>>> import math
>>> import time
>>> import random
>>> import string
>>> divmod(round(cmath.phase(0.2+0.8j), 2)*20, 3)
(8.0, 2.6000000000000014)
>>> dat = time.localtime()
>>> h_m = f'Текущий час: {dat.tm_hour}; Текущая минута: {dat.tm_min}'
>>> h_m
'Текущий час: 2; Текущая минута: 32'
>>> weekday = ['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье']
>>> weekday_selection = random.sample(weekday,3)
>>> weekday_selection
['Среда', 'Вторник', 'Воскресенье']
>>> seq = range(14,33,3)
>>> random.choice(seq)
26
>>> N = round(random.gauss(15,4))
>>> letters = random.sample(string.ascii_lowercase,N)
>>> letters
['a', 'd', 'k', 'h', 'u', 'y', 'm', 'o', 'w', 'n', 'e', 'p']
>>> c1 = 1760129676.087689
>>> c2=time.time()-c1
>>> c2
9507.228925943375
```

@ -0,0 +1,20 @@
# Индивидуальное контрольное задание по теме 4
Корнеев Максим, А-03-23
## Задание
Напишите инструкцию, позволяющую определить и записать в переменную календарные характеристики (год, месяц, день) момента, отстоящего на 7000000 сек. вперед от текущего времени. Выведите эти сведения в виде строки вида: «Это будет ХХ-ХХ-ХХХХ». Создайте множество с 5 случайными целыми элементами, значения которых находятся в диапазоне значений от 1 до 12.
## Решение
```py
import time
import random
c1 = time.localtime()
c2 = time.mktime(c1) + 7000000
c3 = time.localtime(c2)
print(f'Это будет {c3.tm_mday}-{c3.tm_mon}-{c3.tm_year}')
mnoz = {random.randint(1,12) for _ in range(5)}
print(mnoz)
```
Загрузка…
Отмена
Сохранить