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

..

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

Автор SHA1 Сообщение Дата
Максим Корнеев abf0cdc7c7 Done lab5
4 часов назад
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 месяцев назад

@ -1,7 +1,6 @@
# Программное обеспечение автоматизированных систем: лабораторные работы
[Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/python)
Обратите внимание на файл с комментариями в репозитории по ссылке.
## Работа с Git
@ -87,7 +86,7 @@
## 1.1 Настройка текущего каталога
```py
```
>>> import os
>>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1")
>>> os.getcwd()
@ -110,7 +109,7 @@
### Оформление решений
Решение всех заданий и тестов оформляется по образцу:
Решение всех заданий оформляется по образцу:
# Общее контрольное задание по теме 2
@ -130,8 +129,5 @@
Для темы 1 вместо «Задания» — «Вопрос», вместо «Решения» — «Ответ».
Для тем 3, 6 и 9 вместо «Индивидуального контрольного задания по теме 3 (6, 9)» —
«Тест по модулю 1 (2, 3)».
Для тем 8 и 9 раздела «Решение» не нужно,
вместо этого решение размещается в отдельных файлах `*.py`.

@ -6,7 +6,7 @@
## 1.1 Настройка текущего каталога
```py
```
>>> import os
>>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1")
>>> os.getcwd()

@ -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)
```

Двоичные данные
TEMA5/Figure_1.png

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

После

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

Двоичные данные
TEMA5/Figure_2.png

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

После

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

@ -0,0 +1,237 @@
# Отчет по теме 5
Корнеев Максим, А-03-23
## 1 Управляющая инструкция if
```py
>>> porog, rashod1, rashod2 = 5, 7, 4
>>> if rashod1>=porog:
>>> dohod=12
>>> elif rashod2==porog:
>>> dohod=0
>>> else:
>>> dohod=-8
>>> dohod
12
>>> if rashod1>=3 and rashod2==4:
>>> dohod=rashod1
>>> if rashod2==porog or rashod1<rashod2:
>>> dohod=porog
>>> dohod
7
>>> if porog==3:
>>> dohod=1
>>> elif porog==4:
>>> dohod=2
>>> elif porog==5:
>>> dohod=3
>>> else:
>>> dohod=0
>>> dohod
3
>>> dohod=2 if porog>=4 else 0
>>> dohod
2
>>> if porog>=5 : rashod1=6; rashod2=0
>>> rashod1
6
>>> rashod2
0
```
## 2 Управляющая инструкция for
```py
>>> temperatura=5
>>> for i in range(3,18,3):
>>> temperatura+=i
>>> temperatura
50
>>> sps=[2,15,14,8]
>>> for k in sps:
>>> if len(sps)<=10:sps.append(sps[0])
>>> else:break
>>> sps
[2, 15, 14, 8, 2, 2, 2, 2, 2, 2, 2]
>>> sps=[2,15,14,8]
>>> for k in sps[:]:
>>> if len(sps)<=10:sps.append(sps[0])
>>> else:break
>>> sps
[2, 15, 14, 8, 2, 2, 2, 2]
>>> import random as rn
>>> sps5=[]
>>> for i in range(10):
>>> sps5.append(rn.randint(1,100))
>>> ss=sum(sps5)
>>> if ss>500: break
>>> else:
>>> print(ss)
451
>>> sps5
[53, 33, 67, 78, 25, 68, 20, 29, 42, 36]
>>> for i in range(10):
>>> sps5.append(rn.randint(1,100))
>>> ss=sum(sps5)
>>> if ss>500: break
>>> else:
>>> print(ss)
>>> sps5
[53, 33, 67, 78, 25, 68, 20, 29, 42, 36, 10, 78]
>>> stroka='Это – автоматизированная система'
>>> stroka1=""
>>> for ss in stroka:
>>> stroka1+=" "+ss
>>> stroka1
' Э т о – а в т о м а т и з и р о в а н н а я с и с т е м а'
>>> import math
>>> sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
>>> import pylab
>>> t=list(range(100))
>>> pylab.plot(t, sps2)
[<matplotlib.lines.Line2D object at 0x108a7a990>]
>>> pylab.show()
```
График для spis2:
![график](Figure_1.png)
## 3 Управляющая инструкция while
### 3.1 Цикл со счетчиком
```py
>>> rashod=300
>>> while rashod:
>>> print("Расход=",rashod)
>>> rashod-=50
Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50
```
### 3.2 Пример с символьной строкой
```py
>>> stroka='Расчет процесса в объекте регулирования'
>>> i=0
>>> sps2=[]
>>> while i<len(stroka):
>>> r=1-2/(1+math.exp(0.1*i))
>>> sps2.append(r)
>>> print('Значение в момент',i,"=",r)
>>> i+=1
Значение в момент 0 = 0.0
Значение в момент 1 = 0.049958374957880025
Значение в момент 2 = 0.09966799462495568
Значение в момент 3 = 0.14888503362331795
Значение в момент 4 = 0.197375320224904
Значение в момент 5 = 0.2449186624037092
Значение в момент 6 = 0.2913126124515909
Значение в момент 7 = 0.3363755443363322
Значение в момент 8 = 0.3799489622552249
Значение в момент 9 = 0.421899005250008
Значение в момент 10 = 0.4621171572600098
Значение в момент 11 = 0.5005202111902354
Значение в момент 12 = 0.5370495669980353
Значение в момент 13 = 0.5716699660851172
Значение в момент 14 = 0.6043677771171636
Значение в момент 15 = 0.6351489523872873
Значение в момент 16 = 0.6640367702678489
Значение в момент 17 = 0.6910694698329307
Значение в момент 18 = 0.7162978701990245
Значение в момент 19 = 0.7397830512740043
Значение в момент 20 = 0.7615941559557649
Значение в момент 21 = 0.7818063576087741
Значение в момент 22 = 0.8004990217606297
Значение в момент 23 = 0.8177540779702878
Значение в момент 24 = 0.8336546070121553
Значение в момент 25 = 0.8482836399575129
Значение в момент 26 = 0.8617231593133063
Значение в момент 27 = 0.874053287886007
Значение в момент 28 = 0.8853516482022625
Значение в момент 29 = 0.8956928738431645
Значение в момент 30 = 0.9051482536448664
Значение в момент 31 = 0.9137854901178277
Значение в момент 32 = 0.9216685544064713
Значение в момент 33 = 0.9288576214547277
Значение в момент 34 = 0.935409070603099
Значение в момент 35 = 0.9413755384972874
Значение в момент 36 = 0.9468060128462683
Значение в момент 37 = 0.9517459571646616
Значение в момент 38 = 0.9562374581277391
>>> t=list(range(len(sps2)))
>>> pylab.plot(t, sps2)
[<matplotlib.lines.Line2D object at 0x10b903ed0>]
>>> pylab.show()
```
График значений r:
![график](Figure_2.png)
### 3.3 Определение, является ли число простым
```py
>>> chislo=list(range(250,301))
>>> for i in chislo:
>>> kandidat =i // 2
>>> while kandidat > 1:
>>> if i%kandidat == 0:
>>> print(i, ' имеет множитель ', kandidat)
>>> break
>>> kandidat -= 1
>>> else:
>>> print(i, ' является простым!')
250 имеет множитель 125
251 является простым!
252 имеет множитель 126
253 имеет множитель 23
254 имеет множитель 127
255 имеет множитель 85
256 имеет множитель 128
257 является простым!
258 имеет множитель 129
259 имеет множитель 37
260 имеет множитель 130
261 имеет множитель 87
262 имеет множитель 131
263 является простым!
264 имеет множитель 132
265 имеет множитель 53
266 имеет множитель 133
267 имеет множитель 89
268 имеет множитель 134
269 является простым!
270 имеет множитель 135
271 является простым!
272 имеет множитель 136
273 имеет множитель 91
274 имеет множитель 137
275 имеет множитель 55
276 имеет множитель 138
277 является простым!
278 имеет множитель 139
279 имеет множитель 93
280 имеет множитель 140
281 является простым!
282 имеет множитель 141
283 является простым!
284 имеет множитель 142
285 имеет множитель 95
286 имеет множитель 143
287 имеет множитель 41
288 имеет множитель 144
289 имеет множитель 17
290 имеет множитель 145
291 имеет множитель 97
292 имеет множитель 146
293 является простым!
294 имеет множитель 147
295 имеет множитель 59
296 имеет множитель 148
297 имеет множитель 99
298 имеет множитель 149
299 имеет множитель 23
300 имеет множитель 150
```

@ -0,0 +1,89 @@
# Общее контрольное задание по теме 5
Корнеев Максим, А-03-23
## Задание
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:
* Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
* Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
* Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
## Решение
1)
```py
>>> import string
>>> stroka='Help on built-in function print in module builtin'
>>> for i in stroka.lower():
>>> num = string.ascii_lowercase.find(i)
>>> if num >= 0:
>>> print(f'Порядковый номер буквы {i} в англйском алфавите: {num+1}')
Порядковый номер буквы h в англйском алфавите: 8
Порядковый номер буквы e в англйском алфавите: 5
Порядковый номер буквы l в англйском алфавите: 12
Порядковый номер буквы p в англйском алфавите: 16
Порядковый номер буквы o в англйском алфавите: 15
Порядковый номер буквы n в англйском алфавите: 14
Порядковый номер буквы b в англйском алфавите: 2
Порядковый номер буквы u в англйском алфавите: 21
Порядковый номер буквы i в англйском алфавите: 9
Порядковый номер буквы l в англйском алфавите: 12
Порядковый номер буквы t в англйском алфавите: 20
Порядковый номер буквы i в англйском алфавите: 9
Порядковый номер буквы n в англйском алфавите: 14
Порядковый номер буквы f в англйском алфавите: 6
Порядковый номер буквы u в англйском алфавите: 21
Порядковый номер буквы n в англйском алфавите: 14
Порядковый номер буквы c в англйском алфавите: 3
Порядковый номер буквы t в англйском алфавите: 20
Порядковый номер буквы i в англйском алфавите: 9
Порядковый номер буквы o в англйском алфавите: 15
Порядковый номер буквы n в англйском алфавите: 14
Порядковый номер буквы p в англйском алфавите: 16
Порядковый номер буквы r в англйском алфавите: 18
Порядковый номер буквы i в англйском алфавите: 9
Порядковый номер буквы n в англйском алфавите: 14
Порядковый номер буквы t в англйском алфавите: 20
Порядковый номер буквы i в англйском алфавите: 9
Порядковый номер буквы n в англйском алфавите: 14
Порядковый номер буквы m в англйском алфавите: 13
Порядковый номер буквы o в англйском алфавите: 15
Порядковый номер буквы d в англйском алфавите: 4
Порядковый номер буквы u в англйском алфавите: 21
Порядковый номер буквы l в англйском алфавите: 12
Порядковый номер буквы e в англйском алфавите: 5
Порядковый номер буквы b в англйском алфавите: 2
Порядковый номер буквы u в англйском алфавите: 21
Порядковый номер буквы i в англйском алфавите: 9
Порядковый номер буквы l в англйском алфавите: 12
Порядковый номер буквы t в англйском алфавите: 20
Порядковый номер буквы i в англйском алфавите: 9
Порядковый номер буквы n в англйском алфавите: 14
```
2)
```py
>>> value = 'Для'
>>> if value in words: print(f'{value} is in the list')
>>> else: print(f'{value} is not in the list')
Для is in the list
>>> value = 'Hello'
>>> if value in words: print(f'{value} is in the list')
>>> else: print(f'{value} is not in the list')
Hello is not in the list
```
3)
```py
>>> stud_summer = ['Корнеев', 'Гордевских', 'Немецкий']
>>> marks_summer = [3.5, 4.9, 3.1]
>>> stud_winter = ['Гордевских', 'Немецкий', 'Корнеев']
>>> marks_winter = [3.0, 4.3, 5.0]
>>> name = input('Введите фамилию студента: ')
>>> print(f'Средний балл за летнюю сессию {name}: ', marks_summer[stud_summer.index(name)])
>>> print(f'Средний балл за зимнюю сессию {name}: ', marks_winter[stud_winter.index(name)])
Введите фамилию студента: Корнеев
Средний балл за летнюю сессию Корнеев: 3.5
Средний балл за зимнюю сессию Корнеев: 5.0
```
Загрузка…
Отмена
Сохранить