Сравнить коммиты
	
		
			10 Коммитов 
		
	
	
	| Автор | SHA1 | Дата | 
|---|---|---|
| 
							
							
								 | 
						e74b731f64 | 2 недель назад | 
| 
							
							
								 | 
						039e74c207 | 2 недель назад | 
| 
							
							
								 | 
						13ca6d37d0 | 2 недель назад | 
| 
							
							
								 | 
						aa1136f111 | 4 недель назад | 
| 
							
							
								 | 
						26d1583e1b | 4 недель назад | 
| 
							
							
								 | 
						5533367117 | 1 месяц назад | 
| 
							
							
								 | 
						7c69ea6f76 | 1 месяц назад | 
| 
							
							
								 | 
						669cf0a11c | 1 месяц назад | 
| 
							
							
								 | 
						619fdaa6fb | 2 месяцев назад | 
| 
							
							
								 | 
						0d14f1d582 | 2 месяцев назад | 
@ -0,0 +1,2 @@
 | 
				
			||||
print('This line was executed from .txt file!')
 | 
				
			||||
print('And this is two lines programm')
 | 
				
			||||
@ -0,0 +1,3 @@
 | 
				
			||||
 #Программа по Теме 1 Коваленко Дмитрий Максимович
 | 
				
			||||
print('Hello')
 | 
				
			||||
h=input('Your name=')
 | 
				
			||||
@ -0,0 +1,98 @@
 | 
				
			||||
# Отчет по теме 1
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## 1 Изучение среды IDLE
 | 
				
			||||
 | 
				
			||||
### 1.1 Работа с интерпретатором Python
 | 
				
			||||
 | 
				
			||||
Открыл интерпретатор python в терминале
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
vatarishin@MacBook-Air python-labs % python3 
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Попробовал пару простых комманд
 | 
				
			||||
```
 | 
				
			||||
>>> print('Hello')
 | 
				
			||||
Hello
 | 
				
			||||
>>> h=input('Your name=')
 | 
				
			||||
Your name=Dmitriy
 | 
				
			||||
```
 | 
				
			||||
Завершил раборту с интерпретатором в терминале 
 | 
				
			||||
```
 | 
				
			||||
>>> exit()
 | 
				
			||||
vatarishin@MacBook-Air python-labs % 
 | 
				
			||||
```
 | 
				
			||||
### 1.2 Работа с python в IDE
 | 
				
			||||
 | 
				
			||||
Создал файл [Pr0.py](Pr0.py) и непенес в него команды из предыдущего пункта.
 | 
				
			||||
 | 
				
			||||
Запустил файл на выполнение посредством GUI IDE VS CODE
 | 
				
			||||
```
 | 
				
			||||
vatarishin@MacBook-Air python-labs % /usr/bin/python3 /Users/vatarishin/lab_sem_5/python-labs/TEMA1/Pr0.py
 | 
				
			||||
Hello
 | 
				
			||||
Your name=Dmitriy
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Попробовал альтернативный варинат запуска программы
 | 
				
			||||
```
 | 
				
			||||
vatarishin@MacBook-Air TEMA1 % python3 Pr0.py
 | 
				
			||||
Hello
 | 
				
			||||
Your name=Shin
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Запустил на выполнение файл [prb1.py](prb1.py)
 | 
				
			||||
```
 | 
				
			||||
vatarishin@MacBook-Air python-labs % /usr/bin/python3 /Users/vatarishin/lab_sem_5/python-labs/TEMA1/prb1.py
 | 
				
			||||
Как Вас зовут? Дмитрий
 | 
				
			||||
Привет, Дмитрий
 | 
				
			||||
```
 | 
				
			||||
### 1.3 Изучение справки
 | 
				
			||||
```
 | 
				
			||||
help(print)
 | 
				
			||||
Help on built-in function print in module builtins:
 | 
				
			||||
 | 
				
			||||
print(...)
 | 
				
			||||
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
 | 
				
			||||
    
 | 
				
			||||
    Prints the values to a stream, or to sys.stdout by default.
 | 
				
			||||
    Optional keyword arguments:
 | 
				
			||||
    file:  a file-like object (stream); defaults to the current sys.stdout.
 | 
				
			||||
    sep:   string inserted between values, default a space.
 | 
				
			||||
    end:   string appended after the last value, default a newline.
 | 
				
			||||
    flush: whether to forcibly flush the stream.
 | 
				
			||||
 | 
				
			||||
Help on built-in function input in module builtins:
 | 
				
			||||
```
 | 
				
			||||
Попробовал вызвать две команды справки на одной строке
 | 
				
			||||
```
 | 
				
			||||
help(print); help(input)
 | 
				
			||||
Help on built-in function print in module builtins:
 | 
				
			||||
 | 
				
			||||
print(...)
 | 
				
			||||
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
 | 
				
			||||
    
 | 
				
			||||
    Prints the values to a stream, or to sys.stdout by default.
 | 
				
			||||
    Optional keyword arguments:
 | 
				
			||||
    file:  a file-like object (stream); defaults to the current sys.stdout.
 | 
				
			||||
    sep:   string inserted between values, default a space.
 | 
				
			||||
    end:   string appended after the last value, default a newline.
 | 
				
			||||
    flush: whether to forcibly flush the stream.
 | 
				
			||||
 | 
				
			||||
Help on built-in function input in module builtins:
 | 
				
			||||
 | 
				
			||||
input(prompt=None, /)
 | 
				
			||||
    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.
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 1.4 Изучение примеров
 | 
				
			||||
Запустил файл [tdemo_chaos.py](tdemo_chaos.py)
 | 
				
			||||
 | 
				
			||||
Открылось окно GUI, где в случайном порядке рисуются точки, соедененные линиями
 | 
				
			||||
@ -0,0 +1,22 @@
 | 
				
			||||
# Индивидуальное контрольное задание по теме 1
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Вопрос 8
 | 
				
			||||
 | 
				
			||||
Как можно запустить на выполнение программу, исходный код которой находится в тексто-вом файле  ABC.txt?
 | 
				
			||||
 | 
				
			||||
## Ответ
 | 
				
			||||
 | 
				
			||||
Запустить код написанный в .txt файле можно при помощи функции ```exec()```
 | 
				
			||||
 | 
				
			||||
Пример файла [ABC.txt](ABC.txt)
 | 
				
			||||
Способ запуска кода из txt файла приведен в [test.py](test.py)
 | 
				
			||||
 | 
				
			||||
Результат выполнения
 | 
				
			||||
```
 | 
				
			||||
vatarishin@MacBook-Air python-labs % /Library/Developer/CommandLineTools/usr/bin/python3 /Users/vatarishin/lab_sem_5/python-labs/
 | 
				
			||||
TEMA1/test.py
 | 
				
			||||
This line was executed from .txt file!
 | 
				
			||||
And this is two lines programm
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,2 @@
 | 
				
			||||
with open('/Users/vatarishin/lab_sem_5/python-labs/TEMA1/ABC.txt', 'r') as textScript:
 | 
				
			||||
    exec(textScript.read())
 | 
				
			||||
@ -0,0 +1,4 @@
 | 
				
			||||
gg1=1.6  #значение в виде вещественного числа
 | 
				
			||||
hh1='Строка'  #значение в виде символьной строки
 | 
				
			||||
73sr=3   #неправильное имя – начинается с цифры - будет диагностика!
 | 
				
			||||
and=7     #недопустимое имя – совпадает с ключевым словом - будет диагностика!
 | 
				
			||||
@ -0,0 +1,255 @@
 | 
				
			||||
# Отчет по теме 2
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## 2 Базовые типы объектов
 | 
				
			||||
 | 
				
			||||
###  2.1 Изучение простых объектов
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
>>> f1=16; f2=3
 | 
				
			||||
>>> f1,f2
 | 
				
			||||
(16, 3)
 | 
				
			||||
>>> f1;f2
 | 
				
			||||
16
 | 
				
			||||
3
 | 
				
			||||
>>> dir()
 | 
				
			||||
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'f1', 'f2']
 | 
				
			||||
>>> dir(f1)
 | 
				
			||||
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__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_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
 | 
				
			||||
TypeError: type() takes 1 or 3 arguments
 | 
				
			||||
>>> type(f2)
 | 
				
			||||
<class 'int'>
 | 
				
			||||
>>> del f1,f2
 | 
				
			||||
>>> dir()
 | 
				
			||||
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
 | 
				
			||||
```
 | 
				
			||||
Видим, что переменные имеют тип `int`. При помощи `dir(var)` можно узнать методы объекта, а при вызове `dir()` можно посмотреть, какие переменные есть в памяти. Как можно видеть из последнего запуска `dir()`, переменные `f1`, `f2` были удалены из памяти программы.
 | 
				
			||||
### 2.2 Изучение правил именования
 | 
				
			||||
 | 
				
			||||
Создал программу [prog1.py](prog1.py) и записал в неё несколько комманд для проверки правил именования. Ожидаемо, получил ошибку на неправильном имени файла
 | 
				
			||||
```
 | 
				
			||||
vatarishin@MacBook-Air python-labs % /Library/Developer/CommandLineTools/usr/bin/python3 /Users/vatarishin/lab_sem_5/python-labs/
 | 
				
			||||
TEMA2/prog1.py
 | 
				
			||||
  File "/Users/vatarishin/lab_sem_5/python-labs/TEMA2/prog1.py", line 3
 | 
				
			||||
    73sr=3   #неправильное имя – начинается с цифры - будет диагностика!
 | 
				
			||||
      ^
 | 
				
			||||
SyntaxError: invalid syntax
 | 
				
			||||
```
 | 
				
			||||
### 2.3 Изучение списка ключевых слов
 | 
				
			||||
```
 | 
				
			||||
>>> import keyword
 | 
				
			||||
>>> kw = keyword.kwlist
 | 
				
			||||
>>> print(kw)
 | 
				
			||||
['False', 'None', 'True', '__peg_parser__', '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']
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 2.4 Выведение списка встроенных идентификаторов
 | 
				
			||||
```
 | 
				
			||||
>>> import builtins
 | 
				
			||||
>>> dir(builtins)
 | 
				
			||||
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', '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', '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', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', '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']
 | 
				
			||||
```
 | 
				
			||||
Изучим функцию `zip()`
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
Help on class zip in module builtins:
 | 
				
			||||
 | 
				
			||||
class zip(object)
 | 
				
			||||
 |  zip(*iterables) --> A zip object yielding tuples until an input is exhausted.
 | 
				
			||||
 |  
 | 
				
			||||
 |     >>> list(zip('abcdefg', range(3), range(4)))
 | 
				
			||||
 |     [('a', 0, 0), ('b', 1, 1), ('c', 2, 2)]
 | 
				
			||||
 |  
 | 
				
			||||
 |  The zip object yields n-length tuples, where n is the number of iterables
 | 
				
			||||
 |  passed as positional arguments to zip().  The i-th element in every tuple
 | 
				
			||||
 |  comes from the i-th iterable argument to zip().  This continues until the
 | 
				
			||||
 |  shortest argument is exhausted.
 | 
				
			||||
```
 | 
				
			||||
### 2.5 Рассмотрим значимость регистров
 | 
				
			||||
```
 | 
				
			||||
>>> Gg1=45
 | 
				
			||||
>>> gg1
 | 
				
			||||
Traceback (most recent call last):
 | 
				
			||||
  File "<stdin>", line 1, in <module>
 | 
				
			||||
NameError: name 'gg1' is not defined
 | 
				
			||||
>>> Gg1
 | 
				
			||||
45
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 2.6 Изучим простые типы объектов
 | 
				
			||||
 | 
				
			||||
Логический тип
 | 
				
			||||
```
 | 
				
			||||
>>> bb1=True; bb2=False
 | 
				
			||||
>>> bb1;bb2
 | 
				
			||||
True
 | 
				
			||||
False
 | 
				
			||||
>>> type(bb1)
 | 
				
			||||
<class 'bool'>
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Прочие типы
 | 
				
			||||
```
 | 
				
			||||
>>> ii1=-1234567890
 | 
				
			||||
>>> ff1=-8.9876e-12  #экспоненциальная форма записи вещественного числа
 | 
				
			||||
>>> dv1=0b1101010 #Это – двоичное число. В объекте какого класса оно сохранено?
 | 
				
			||||
>>> vsm1=0o52765   #Это – восьмеричное число
 | 
				
			||||
>>> shest1=0x7109af6  #Это – шестнадцатеричное число
 | 
				
			||||
>>> cc1=2-3j
 | 
				
			||||
>>> a=3.67; b=-0.45
 | 
				
			||||
>>> cc2=complex(a,b)  #Создается комплексное число 
 | 
				
			||||
>>> cc2
 | 
				
			||||
(3.67-0.45j)
 | 
				
			||||
```
 | 
				
			||||
Символьные строки
 | 
				
			||||
```
 | 
				
			||||
>> ss1='Это - строка символов'
 | 
				
			||||
>>> ss1="Это - строка символов"  
 | 
				
			||||
>>> ss1a="Это - \" строка символов \", \n \t выводимая на двух строках";print(ss1a)
 | 
				
			||||
Это - " строка символов ", 
 | 
				
			||||
         выводимая на двух строках
 | 
				
			||||
>>> ss1b= 'Меня зовут: \n Коваленко Д.М.'
 | 
				
			||||
>>> print(ss1b)
 | 
				
			||||
Меня зовут: 
 | 
				
			||||
 Коваленко Д.М.
 | 
				
			||||
>>> mnogo="""Нетрудно заметить , что в результате операции
 | 
				
			||||
... над числами разных типов получается число,
 | 
				
			||||
... имеющее более сложный тип из тех, которые участвуют в операции."""
 | 
				
			||||
>>> print(mnogo)
 | 
				
			||||
Нетрудно заметить , что в результате операции
 | 
				
			||||
над числами разных типов получается число,
 | 
				
			||||
имеющее более сложный тип из тех, которые участвуют в операции.
 | 
				
			||||
>>> ss1="Это - строка символов"
 | 
				
			||||
>>> ss1[0]   #Это – символ «Э»
 | 
				
			||||
'Э'
 | 
				
			||||
>>> ss1[8]  #А это – символ «р»
 | 
				
			||||
'р'
 | 
				
			||||
>>> ss1[-2]  #А это – символ «о» (при знаке «-»(минус) отсчет от конца строки)
 | 
				
			||||
'о'
 | 
				
			||||
ss1[6:9]  #Это часть строки – символы с 6-го индекса по 8-й (9-й не включается!)
 | 
				
			||||
ss1[13:]  #Это часть строки – с 13-го индекса и до конца
 | 
				
			||||
ss1[:13]  #Это часть строки – с начала и до 12-го индекса включительно
 | 
				
			||||
ss1[5:-8]  #Это часть строки – с 5-го индекса и до 8-го от конца
 | 
				
			||||
ss1[3:17:2]  #Часть строки – с 3-го по 16-й индексы с шагом 2
 | 
				
			||||
>>> ss1[17:3:-2]
 | 
				
			||||
'омсаот '
 | 
				
			||||
>>> ss1[4]='='  
 | 
				
			||||
Traceback (most recent call last):
 | 
				
			||||
  File "<stdin>", line 1, in <module>
 | 
				
			||||
TypeError: 'str' object does not support item assignment
 | 
				
			||||
>>> ss1=ss1[:4]+'='+ss1[5:]
 | 
				
			||||
>>> ss1
 | 
				
			||||
'Это = строка символов'
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 2.7 Изучим более сложные типы объектов
 | 
				
			||||
```
 | 
				
			||||
>>> spis1=[111,'Spisok',5-9j]
 | 
				
			||||
>>> 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]
 | 
				
			||||
>>> stup[-8::2]
 | 
				
			||||
[0, 1, 1, 1]
 | 
				
			||||
>>> spis1[1]='Список'
 | 
				
			||||
>>> spis1
 | 
				
			||||
[111, 'Список', (5-9j)]
 | 
				
			||||
 | 
				
			||||
help(spis1.append)
 | 
				
			||||
Help on built-in function append:
 | 
				
			||||
 | 
				
			||||
append(object, /) method of builtins.list instance
 | 
				
			||||
    Append object to the end of the list.
 | 
				
			||||
>>> spis1.append('New item') 
 | 
				
			||||
>>> spis1+['New item']
 | 
				
			||||
[111, 'Список', (5-9j), 'New item', 'New item']
 | 
				
			||||
>>> spis1.pop(1) 
 | 
				
			||||
'Список'
 | 
				
			||||
>>> spis2=[spis1,[4,5,6,7]]
 | 
				
			||||
>>> spis2
 | 
				
			||||
[[111, (5-9j), 'New item'], [4, 5, 6, 7]]
 | 
				
			||||
>>> spis2[0][1]  
 | 
				
			||||
(5-9j)
 | 
				
			||||
>>> spis2[0][1]=78  
 | 
				
			||||
>>> spis1
 | 
				
			||||
[111, 78, 'New item']
 | 
				
			||||
```
 | 
				
			||||
Видим, что при изменении вложенного списка, изменяется и сам исходный список. Это происходит потому что при создании `spis2` была использована ссылка на `spis1`. Чтобы списки были независимы, в `spis2` надо передовать копию списка. 
 | 
				
			||||
Создадим свой объект-список
 | 
				
			||||
```myList1 = [1, '1', True, [1, '1', True]]```
 | 
				
			||||
 | 
				
			||||
### 2.8 Изучим кортежи
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> kort1=(222,'Kortezh',77+8j)
 | 
				
			||||
>>> kort1
 | 
				
			||||
(222, 'Kortezh', (77+8j))
 | 
				
			||||
>>> kort1= kort1+(1,2)
 | 
				
			||||
>>> kort1
 | 
				
			||||
(222, 'Kortezh', (77+8j), 1, 2)
 | 
				
			||||
>>> kort1= kort1+(ss1b,)
 | 
				
			||||
>>> 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 "<stdin>", line 1, in <module>
 | 
				
			||||
TypeError: 'tuple' object does not support item assignment
 | 
				
			||||
 | 
				
			||||
kort0 = (0, '0', [False, False], (0, '0', False))
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 2.9 Изучим словари
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>> 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'][2]
 | 
				
			||||
'standart deviation'
 | 
				
			||||
>>> dic4=dict([(1,['A','B','C']),(2,[4,5]),('Q','Prim'),('Stroka',ss1b)])
 | 
				
			||||
>>> dic5=dict(zip(['A','B','C','Stroka'],[16,-3,9,ss1b]))
 | 
				
			||||
>>> 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
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 2.10 Изучим множества
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
 | 
				
			||||
>>> mnoz1
 | 
				
			||||
{'двигатель', 'датчик', 'линия связи', 'микропроцессор'}
 | 
				
			||||
>>> len(mnoz1)
 | 
				
			||||
4
 | 
				
			||||
>>> 'датчик' in mnoz1
 | 
				
			||||
True
 | 
				
			||||
>>> mnoz1.add('реле')
 | 
				
			||||
>>> mnoz1.remove('линия связи')
 | 
				
			||||
>>> mnoz1
 | 
				
			||||
{'микропроцессор', 'реле', 'двигатель', 'датчик'}
 | 
				
			||||
 | 
				
			||||
>>> set1 = {1, 1, '1', "1", True, True, (1, '1')}
 | 
				
			||||
>>> set1
 | 
				
			||||
{1, '1', (1, '1')}
 | 
				
			||||
>>> len(set1)
 | 
				
			||||
3
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,41 @@
 | 
				
			||||
# Общее контрольное задание по теме 2
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание
 | 
				
			||||
 | 
				
			||||
•	Создать переменную с именем `familia` и со значением - символьной строкой – своей фамилией в латинской транскрипции.
 | 
				
			||||
•	Создать переменную со значением, совпадающим с первой буквой из `familia`.
 | 
				
			||||
•	Создать переменную с именем `sp_kw` со значением – списком всей ключевых слов языка Python.
 | 
				
			||||
•	Удалите из списка `sp_kw` значение `'nonlocal'`. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
 | 
				
			||||
•	Создайте кортеж `kort_nam` с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это `tuple`.
 | 
				
			||||
•	Напишите инструкцию, добавляющую в `kort_nam` имена еще двух студентов. 
 | 
				
			||||
•	Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
 | 
				
			||||
•	Создайте словарь `dict_bas`, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
import keyword
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
familia = 'Kovalenko'
 | 
				
			||||
withLetK = familia[0]
 | 
				
			||||
sp_kw = keyword.kwlist
 | 
				
			||||
sp_kw.remove('nonlocal')
 | 
				
			||||
sp_kw
 | 
				
			||||
 | 
				
			||||
kort_nam = ('Дмитрий', 'Максим', 'Даниил', 'Дима')
 | 
				
			||||
type(kort_nam)
 | 
				
			||||
kort_nam = kort_nam+('Александр', 'Елизавета')
 | 
				
			||||
kort_nam.count('Дима')
 | 
				
			||||
dict_bas = {'строка': familia, 'Список': sp_kw, 'Кортеж': kort_nam}
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
['False', 'None', 'True', '__peg_parser__', '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']
 | 
				
			||||
>>> type(kort_nam)
 | 
				
			||||
<class 'tuple'>
 | 
				
			||||
>>> kort_nam.count('Дима')
 | 
				
			||||
1
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,32 @@
 | 
				
			||||
# Индивидуальное контрольное задание по теме 2
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание 9
 | 
				
			||||
 | 
				
			||||
Создайте два объекта
 | 
				
			||||
 `u=[1,2,3,4,5]`
 | 
				
			||||
 `v=[11,22,33,44,55]`
 | 
				
			||||
К какому классу относятся эти объекты? Напишите инструкцию создания нового объекта-множества `z` с элементами из `u` и `v`.
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
u = [1,2,3,4,5]
 | 
				
			||||
v = [11,22,33,44,55]
 | 
				
			||||
type(u)
 | 
				
			||||
type(v)
 | 
				
			||||
z = {*u, *v}
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Вывод:
 | 
				
			||||
```py
 | 
				
			||||
>>> type(u)
 | 
				
			||||
<class 'list'>
 | 
				
			||||
>>> type(v)
 | 
				
			||||
<class 'list'>
 | 
				
			||||
>>> z = {*u, *v}
 | 
				
			||||
>>> z
 | 
				
			||||
{1, 2, 3, 4, 5, 33, 11, 44, 22, 55}
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,452 @@
 | 
				
			||||
# Отчет по теме 3
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## 3 Операции с объектами 
 | 
				
			||||
 | 
				
			||||
### 3.1 Преобразование в логический тип с помощью функции bool(<Объект>).
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> logiz1=bool(56)
 | 
				
			||||
>>> logiz2=bool(0)
 | 
				
			||||
>>> logiz3=bool("Beta")
 | 
				
			||||
>>> logiz4=bool("")
 | 
				
			||||
>>> logiz1
 | 
				
			||||
True
 | 
				
			||||
>>> logiz2
 | 
				
			||||
False
 | 
				
			||||
>>> logiz3
 | 
				
			||||
True
 | 
				
			||||
>>> logiz4
 | 
				
			||||
False
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.2 Преобразование в целочисленный тип int и вещественный float
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> tt1=int(198.6)
 | 
				
			||||
>>> tt2=int("-76") 
 | 
				
			||||
>>> tt3=int("B",16)
 | 
				
			||||
>>> tt4=int("71",8)
 | 
				
			||||
>>> tt5=int("98.76")  
 | 
				
			||||
Traceback (most recent call last):
 | 
				
			||||
  File "<stdin>", line 1, in <module>
 | 
				
			||||
ValueError: invalid literal for int() with base 10: '98.76'
 | 
				
			||||
```
 | 
				
			||||
В последней иструкции видим ошибку. Это происходит из-за того, что `int()` не может перевести строку в целочисленный тип, если указана дробная часть. 
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> flt1=float(789)
 | 
				
			||||
flt2=float(-6.78e2)
 | 
				
			||||
flt3=float("Infinity")
 | 
				
			||||
flt4=float("-inf")>>> flt2=float(-6.78e2)
 | 
				
			||||
>>> flt3=float("Infinity")
 | 
				
			||||
>>> flt4=float("-inf")
 | 
				
			||||
>>> flt1
 | 
				
			||||
789.0
 | 
				
			||||
>>> flt2
 | 
				
			||||
-678.0
 | 
				
			||||
>>> flt3
 | 
				
			||||
inf
 | 
				
			||||
>>> flt4
 | 
				
			||||
-inf
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.3 Преобразование десятичных чисел в другие системы счисления
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> hh=123
 | 
				
			||||
>>> dv1=bin(hh)
 | 
				
			||||
>>> vos1=oct(hh)
 | 
				
			||||
>>> shs1=hex(hh)
 | 
				
			||||
>>> dv1
 | 
				
			||||
'0b1111011'
 | 
				
			||||
>>> vos1
 | 
				
			||||
'0o173'
 | 
				
			||||
>>> shs1
 | 
				
			||||
'0x7b'
 | 
				
			||||
>>> nDv1 = int(dv1, 2)
 | 
				
			||||
>>> nDv1
 | 
				
			||||
123
 | 
				
			||||
>>> nVos1 = int(vos1, 8)
 | 
				
			||||
>>> nVos1
 | 
				
			||||
123
 | 
				
			||||
>>> nShs1 = int(shs1, 16)
 | 
				
			||||
>>> nShs1
 | 
				
			||||
123
 | 
				
			||||
```
 | 
				
			||||
### 3.4 Преобразование в строку символов с помощью функции str(<Объект>)
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> strk1=str(23.6)
 | 
				
			||||
>>> strk2=str(logiz3)
 | 
				
			||||
>>> strk3=str(["A","B","C"])
 | 
				
			||||
>>> strk4=str(("A","B","C")) 
 | 
				
			||||
>>> strk5=str({"A":1,"B":2,"C":9})
 | 
				
			||||
>>> strk3
 | 
				
			||||
"['A', 'B', 'C']"
 | 
				
			||||
```
 | 
				
			||||
### 3.5 Преобразование элементов объекта в список с помощью функции list(<Объект>)
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> spis1=list("Строка символов")
 | 
				
			||||
>>> spis2=list((124,236,-15,908))
 | 
				
			||||
>>> spis3=list({"A":1,"B":2,"C":9})
 | 
				
			||||
>>> spis3
 | 
				
			||||
['A', 'B', 'C']
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.6	Преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>).
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> kort7=tuple('Строка символов')
 | 
				
			||||
>>> kort8=tuple(spis2)
 | 
				
			||||
>>> kort9=tuple({"A":1,"B":2,"C":9})
 | 
				
			||||
>>> kort9
 | 
				
			||||
('A', 'B', 'C')
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.7 Удаление объектов
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> del strk5, kort8
 | 
				
			||||
>>> strk5
 | 
				
			||||
Traceback (most recent call last):
 | 
				
			||||
  File "<stdin>", line 1, in <module>
 | 
				
			||||
NameError: name 'strk5' is not defined
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.8	Арифметические операции
 | 
				
			||||
 | 
				
			||||
Сложение и вычитание (+ и -)
 | 
				
			||||
```
 | 
				
			||||
>>> 12+7+90
 | 
				
			||||
109
 | 
				
			||||
>>> 5.689e-1 - 0.456
 | 
				
			||||
0.11289999999999994
 | 
				
			||||
>>> 23.6+54
 | 
				
			||||
77.6
 | 
				
			||||
>>> 14-56.7+89
 | 
				
			||||
46.3
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Умножение (*)
 | 
				
			||||
```
 | 
				
			||||
>>> -6.7*12
 | 
				
			||||
-80.4
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Деление (/)
 | 
				
			||||
```
 | 
				
			||||
>>> -234.5/6
 | 
				
			||||
-39.083333333333336
 | 
				
			||||
>>> a=178/45  
 | 
				
			||||
>>> a
 | 
				
			||||
3.9555555555555557
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Деление с округлением вниз (//)
 | 
				
			||||
```
 | 
				
			||||
>>> b=178//45
 | 
				
			||||
>>> c=-24.6//12.1
 | 
				
			||||
>>> b
 | 
				
			||||
3
 | 
				
			||||
>>> c
 | 
				
			||||
-3.0
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Получение остатка от деления (%)
 | 
				
			||||
```
 | 
				
			||||
>>> 148%33
 | 
				
			||||
16
 | 
				
			||||
>>> 12.6%3.8 
 | 
				
			||||
1.2000000000000002
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Возведение в степень (**). 
 | 
				
			||||
```
 | 
				
			||||
>>> 14**3
 | 
				
			||||
2744
 | 
				
			||||
>>> e=2.7**3.6
 | 
				
			||||
>>> e
 | 
				
			||||
35.719843790663525
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.9 Операции с двоичными представлениями целых чисел
 | 
				
			||||
 | 
				
			||||
Двоичная инверсия
 | 
				
			||||
```
 | 
				
			||||
>>> dv1=9
 | 
				
			||||
>>> dv2=~dv1
 | 
				
			||||
>>> dv2
 | 
				
			||||
-10
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Двоичное «И» (&) – побитовое совпадение двоичных представлений чисел
 | 
				
			||||
```
 | 
				
			||||
>>> 7&9    
 | 
				
			||||
1
 | 
				
			||||
>>> 7&8
 | 
				
			||||
0
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Двоичное «ИЛИ» (|)
 | 
				
			||||
```
 | 
				
			||||
>>> 7|9
 | 
				
			||||
15
 | 
				
			||||
>>> 7|8
 | 
				
			||||
15
 | 
				
			||||
>>> 14|5   
 | 
				
			||||
15
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Двоичное «исключающее ИЛИ»(^)
 | 
				
			||||
```
 | 
				
			||||
>>> 14^5
 | 
				
			||||
11
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>)
 | 
				
			||||
```
 | 
				
			||||
>>> h=14
 | 
				
			||||
>>> g=h<<2
 | 
				
			||||
>>> g1=h>>1
 | 
				
			||||
>>> g2=h>>2
 | 
				
			||||
>>> g
 | 
				
			||||
56
 | 
				
			||||
>>> g1
 | 
				
			||||
7
 | 
				
			||||
>>> g2
 | 
				
			||||
3
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.10 Операции при работе с последовательностями (строками, списками, кортежами).
 | 
				
			||||
 | 
				
			||||
Объединение последовательностей (конкатенация)(+)
 | 
				
			||||
```
 | 
				
			||||
>>> 'Система '+'регулирования' 
 | 
				
			||||
'Система регулирования'
 | 
				
			||||
>>> ['abc','de','fg']+['hi','jkl']
 | 
				
			||||
['abc', 'de', 'fg', 'hi', 'jkl']
 | 
				
			||||
>>> ('abc','de','fg')+('hi','jkl')
 | 
				
			||||
('abc', 'de', 'fg', 'hi', 'jkl')
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Повторение (*)
 | 
				
			||||
```
 | 
				
			||||
>>> 'ля-'*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)
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Проверка наличия заданного элемента в последовательности (in)
 | 
				
			||||
```
 | 
				
			||||
>>> stroka='Система автоматического управления'
 | 
				
			||||
>>> 'автомат' in stroka
 | 
				
			||||
True
 | 
				
			||||
>>> 'ку' in ['ку','-']*3
 | 
				
			||||
True
 | 
				
			||||
>>> 'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl')
 | 
				
			||||
False
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Подстановка значений в строку с помощью оператора «%»
 | 
				
			||||
```
 | 
				
			||||
>>> stroka='Температура = %g %s  %g'
 | 
				
			||||
>>> stroka % (16,' меньше ',25)
 | 
				
			||||
'Температура = 16  меньше   25'
 | 
				
			||||
>>> stroka='Температура = %(zn1)g %(sravn)s  %(zn2)g'
 | 
				
			||||
>>> stroka % {'zn1':16,'sravn':' меньше ','zn2':25}
 | 
				
			||||
'Температура = 16  меньше   25'
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.11	Оператор присваивания
 | 
				
			||||
Обычное присваивание значения переменной (=)
 | 
				
			||||
```
 | 
				
			||||
zz=-12
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Увеличение значения переменной на заданную величину  (+=) или уменьшение (-=)
 | 
				
			||||
```
 | 
				
			||||
>>> zz +=5
 | 
				
			||||
>>> zz
 | 
				
			||||
-7
 | 
				
			||||
>>> zz -=3
 | 
				
			||||
>>> zz
 | 
				
			||||
-10
 | 
				
			||||
 | 
				
			||||
>>> stroka='Система'
 | 
				
			||||
>>> stroka+=' регулирования'
 | 
				
			||||
>>> stroka
 | 
				
			||||
'Система регулирования'
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Умножение текущего значения переменной на заданную величину (*=) или деление (/=)
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> zz /= 2
 | 
				
			||||
>>> zz
 | 
				
			||||
-5.0
 | 
				
			||||
>>> zz *= 5
 | 
				
			||||
>>> zz
 | 
				
			||||
-25.0
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Изучим оперции `//=`, `%=`, `**=`
 | 
				
			||||
```
 | 
				
			||||
>>> zz //= 2
 | 
				
			||||
>>> zz
 | 
				
			||||
-13.0
 | 
				
			||||
>>> zz %= 2
 | 
				
			||||
>>> zz
 | 
				
			||||
1.0
 | 
				
			||||
>>> zz **= 3
 | 
				
			||||
>>> zz
 | 
				
			||||
1.0
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Множественное присваивание
 | 
				
			||||
```
 | 
				
			||||
>>> w=v=10
 | 
				
			||||
>>> n1,n2,n3=(11,-3,'all')
 | 
				
			||||
>>> n2
 | 
				
			||||
-3
 | 
				
			||||
>>> m1 = m2 = {1: '1', 2: '2'}
 | 
				
			||||
>>> m1
 | 
				
			||||
{1: '1', 2: '2'}
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.12 Логические операции 
 | 
				
			||||
Операции сравнение
 | 
				
			||||
```
 | 
				
			||||
>>> w != v
 | 
				
			||||
False
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Проверка наличия заданного элемента в последовательности или во множестве
 | 
				
			||||
```
 | 
				
			||||
>>> 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
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Создание больших логических выражений с использованием соединительных слов: логическое «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not). 
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
>>> a=17
 | 
				
			||||
>>> b=-6
 | 
				
			||||
>>> (a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
 | 
				
			||||
True
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Проверка ссылок переменных на один и тот же объект (is)
 | 
				
			||||
```
 | 
				
			||||
>>> w=v=10
 | 
				
			||||
w is v
 | 
				
			||||
w1=['A','B'] 
 | 
				
			||||
v1=['A','B']  
 | 
				
			||||
w1 is v1>>> w is v
 | 
				
			||||
True
 | 
				
			||||
>>> w1=['A','B'] 
 | 
				
			||||
>>> v1=['A','B']  
 | 
				
			||||
>>> w1 is v1
 | 
				
			||||
False
 | 
				
			||||
```
 | 
				
			||||
результат последней проверки выдал Flase потому что мы создали два фактически разных списка, так как они находятся в разных ячейках памяти
 | 
				
			||||
 | 
				
			||||
### 3.13 Операции с объектами, выполняемые с помощью методов.
 | 
				
			||||
 | 
				
			||||
Методы для работы со строками
 | 
				
			||||
```
 | 
				
			||||
>>> stroka='Микропроцессорная система управления'
 | 
				
			||||
>>> stroka.find('пр')
 | 
				
			||||
5
 | 
				
			||||
>>> stroka.count("с")
 | 
				
			||||
4
 | 
				
			||||
>>> stroka.replace(' у',' автоматического у')
 | 
				
			||||
'Микропроцессорная система автоматического управления'
 | 
				
			||||
>>> spis22=stroka.split(' ')
 | 
				
			||||
>>> stroka.upper()
 | 
				
			||||
'МИКРОПРОЦЕССОРНАЯ СИСТЕМА УПРАВЛЕНИЯ'
 | 
				
			||||
>>> stroka3=" ".join(spis22)
 | 
				
			||||
>>> stroka3.partition("с")
 | 
				
			||||
('Микропроце', 'с', 'сорная система управления')
 | 
				
			||||
>>> stroka3.rpartition("с")
 | 
				
			||||
('Микропроцессорная си', 'с', 'тема управления')
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Изучим `format`
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
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'
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
Методы для работы со списками
 | 
				
			||||
```
 | 
				
			||||
>>> spsk = [1, 2, 3, 4, 5, 6]
 | 
				
			||||
>>> spsk.pop(2)
 | 
				
			||||
3
 | 
				
			||||
>>> spsk.append('c')
 | 
				
			||||
>>> spsk.insert(2,'a')
 | 
				
			||||
>>> spsk.count('a')
 | 
				
			||||
1
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 3.14 Изучим методы кортежей, множеств, словарей
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
tup = (1, 2, 3, 4)
 | 
				
			||||
>>> tup=tup+(5,7)
 | 
				
			||||
>>> tup
 | 
				
			||||
(1, 2, 3, 4, 5, 7)
 | 
				
			||||
>>> tup.count(2)
 | 
				
			||||
>>> len(tup)
 | 
				
			||||
6
 | 
				
			||||
 | 
				
			||||
set1 = {1, 1, '1', True}
 | 
				
			||||
>>> set1
 | 
				
			||||
{1, '1'}
 | 
				
			||||
>>> set1.pop()
 | 
				
			||||
1
 | 
				
			||||
>>> dir(set1)
 | 
				
			||||
['__and__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
 | 
				
			||||
 | 
				
			||||
>>> map1 = {1: '1', 2: '2'}
 | 
				
			||||
>>> map1.keys()
 | 
				
			||||
dict_keys([1, 2])
 | 
				
			||||
>>> dir(map1)
 | 
				
			||||
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__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']
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,55 @@
 | 
				
			||||
# Общее контрольное задание по теме 3
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание
 | 
				
			||||
 | 
				
			||||
•	Преобразовать восьмеричное значение 45 в целое число.\
 | 
				
			||||
•	Создать объект-словарь `D` со значениями {"усиление":23, "запаздывание":12, "постоянная времени":78} и затем осуществить его преобразование в два списка: ключей и значений, а затем – эти два списка преобразовать в один кортеж. Чем отличается кортеж от списка?\
 | 
				
			||||
•	Напишите и выполните единое выражение, осуществляющее деление числа 1768 на 24.8 с округлением вниз, с определением после этого остатка от деления получившегося значения на 3 и затем возведения результата в степень 2.4.\
 | 
				
			||||
•	Напишите и выполните единое выражение, последовательно осуществляющее следующие операции: двоичное И для чисел 13 и 27, инверсия полученного значения, двоичное исключающее ИЛИ для полученного значения и числа 14, сдвиг полученного значения на два разряда влево.\
 | 
				
			||||
•	Создать список с 4 одинаковыми элементами 'колебат' и написать оператор проверки наличия комбинации символов 'аткол' в результате конкатенации второго и третьего элементов этого списка.\
 | 
				
			||||
•	Определить список методов, доступных у ранее созданного словаря `D`. Поочередно использовать его методы `keys` и `values`, определить, что можно получить с применением этих методов.\
 | 
				
			||||
•	Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки.  Заменить в списке элемент «-» на «,».  Удалить из списка элемент со значением «данного». Отобразить получившийся список.
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
int('45', 8)
 | 
				
			||||
37
 | 
				
			||||
 | 
				
			||||
D = {"усиление":23, "запаздывание":12, "постоянная времени":78}
 | 
				
			||||
dKeys = list(D.keys())
 | 
				
			||||
dVals = list(D.values())
 | 
				
			||||
dTup = (*dKeys, *dVals)
 | 
				
			||||
 | 
				
			||||
((1788 // 24.8) % 3) ** 2.4
 | 
				
			||||
0.0
 | 
				
			||||
 | 
				
			||||
((~(13 & 27)) ^ 14) << 2
 | 
				
			||||
-32
 | 
				
			||||
 | 
				
			||||
listt = ['колебат'] * 4
 | 
				
			||||
'аткол' in (listt[1] + listt[2])
 | 
				
			||||
True
 | 
				
			||||
 | 
				
			||||
dir(D)
 | 
				
			||||
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__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])
 | 
				
			||||
 | 
				
			||||
longS = 'Создать объект - символьную строку с текстом данного предложения. Из символьной строки создать список, элементами которого будут отдельные слова из созданной строки.  Заменить в списке элемент «-» на «,».  Удалить из списка элемент со значением «данного». Отобразить получившийся список.'
 | 
				
			||||
longS = longS.split(' ')
 | 
				
			||||
longS[longS.index('-')] = ','
 | 
				
			||||
longS.remove('данного')
 | 
				
			||||
longS
 | 
				
			||||
 | 
				
			||||
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения.', 'Из', 'символьной', 'строки', 'создать', 'список,', 'элементами', 'которого', 'будут', 'отдельные', 'слова', 'из', 'созданной', 'строки.', '', 'Заменить', 'в', 'списке', 'элемент', '«-»', 'на', '«,».', '', 'Удалить', 'из', 'списка', 'элемент', 'со', 'значением', '«данного».', 'Отобразить', 'получившийся', 'список.']
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,48 @@
 | 
				
			||||
# Тест 1 вариант 5
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание
 | 
				
			||||
 | 
				
			||||
1)	Для чего предназначено предложение "Окно (Window)" главного меню?
 | 
				
			||||
 | 
				
			||||
2)	Создайте объект-словарь с 8 элементами: ключи - фамилии студентов группы, значения - средние баллы по итогам сессии. Напишите инструкцию,  доказывающую, что создан объект именно требуемого типа. Напишите инструкцию отображения списка атрибутов созданного объекта.
 | 
				
			||||
 | 
				
			||||
3)	Пополните словарь еще двумя элементами. Отобразите получившийся объект. Напишите инструкцию, позволяющую для указанного студента из словаря получить значение его среднего балла. Напишите инструкцию для получения списка всех студентов, представленных в словаре.
 | 
				
			||||
 | 
				
			||||
4)	У одного из студентов средний балл оказался на 0.2 меньше указанного в словаре. Напишите инструкцию, исправляющую это значение в словаре. Отобразите полученный объект. Напишите инструкцию, вычисляющую общий средний балл для всех студентов, представленных в словаре.
 | 
				
			||||
 | 
				
			||||
5)	Создайте список из названий 4-х учебных дисциплин и список с числом часов в неделю на изучение каждой из 4-х дисциплин. Напишите инструкцию, позволяющую создать словарь, объединяющий эти два списка.
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
1) Предложение "Окно (Window)" в IDLE предназначено для переключения между открытыми вкладками (окнами)
 | 
				
			||||
 | 
				
			||||
2) 
 | 
				
			||||
```py
 | 
				
			||||
marks = {'Иванов' : 4.3, 'Сидоров': 5, 'Смитт': 4, 'Гордеев': 4.5, 'Лыкова': 3.9, 'Кравченко': 4.1, 'Смирнов': 3, 'Ходюк': 4.8}
 | 
				
			||||
print(type(marks))
 | 
				
			||||
print(dir(marks))
 | 
				
			||||
```
 | 
				
			||||
3) 
 | 
				
			||||
```py
 | 
				
			||||
marks['Ивачев'] = 4.3
 | 
				
			||||
marks['Мамакин'] = 3.8
 | 
				
			||||
print(marks)
 | 
				
			||||
print(f'Средний балл студента Смитта: {marks["Смитт"]}')
 | 
				
			||||
print(*marks.keys())
 | 
				
			||||
```
 | 
				
			||||
4) 
 | 
				
			||||
```py
 | 
				
			||||
marks['Лыкова'] -= 0.2
 | 
				
			||||
print(marks)
 | 
				
			||||
print(f'Общий средний балл свех студентов в словаре: {sum(marks.values()) / len(marks)}')
 | 
				
			||||
```
 | 
				
			||||
5) 
 | 
				
			||||
```py
 | 
				
			||||
subjects = ['Интеллектуальный анализ данных', 'Спортивные секции', 'Элементы систем управления', 'ПОАС']
 | 
				
			||||
hours = [2, 4, 3, 2]
 | 
				
			||||
subHour = dict(zip(subjects, hours))
 | 
				
			||||
print(subHour)
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,17 @@
 | 
				
			||||
### Предложение "Окно (Window)" в IDLE предназначено для переключения между открытыми вкладками (окнами)
 | 
				
			||||
 | 
				
			||||
marks = {'Иванов' : 4.3, 'Сидоров': 5, 'Смитт': 4, 'Гордеев': 4.5, 'Лыкова': 3.9, 'Кравченко': 4.1, 'Смирнов': 3, 'Ходюк': 4.8}
 | 
				
			||||
print(type(marks))
 | 
				
			||||
print(dir(marks))
 | 
				
			||||
marks['Ивачев'] = 4.3
 | 
				
			||||
marks['Мамакин'] = 3.8
 | 
				
			||||
print(marks)
 | 
				
			||||
print(f'Средний балл студента Смитта: {marks["Смитт"]}')
 | 
				
			||||
print(*marks.keys())
 | 
				
			||||
marks['Лыкова'] -= 0.2
 | 
				
			||||
print(marks)
 | 
				
			||||
print(f'Общий средний балл свех студентов в словаре: {sum(marks.values()) / len(marks)}')
 | 
				
			||||
subjects = ['Интеллектуальный анализ данных', 'Спортивные секции', 'Элементы систем управления', 'ПОАС']
 | 
				
			||||
hours = [64, 64, 60, 48]
 | 
				
			||||
subHour = dict(zip(subjects, hours))
 | 
				
			||||
print(subHour)
 | 
				
			||||
| 
		 После Ширина: | Высота: | Размер: 20 KiB  | 
| 
		 После Ширина: | Высота: | Размер: 15 KiB  | 
@ -0,0 +1,206 @@
 | 
				
			||||
# Отчет по теме 4
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## 4 Встроенные функции
 | 
				
			||||
 | 
				
			||||
### 4.1 Изучим стандартные функции
 | 
				
			||||
 | 
				
			||||
функция `round`
 | 
				
			||||
```py
 | 
				
			||||
>>> round(123.456,1)
 | 
				
			||||
123.5
 | 
				
			||||
>>> round(123.456,0)
 | 
				
			||||
123.0
 | 
				
			||||
>>> round(123.456)
 | 
				
			||||
123
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
функция `range`
 | 
				
			||||
```py
 | 
				
			||||
>>> gg=range(76,123,9)
 | 
				
			||||
>>> list(gg)
 | 
				
			||||
[76, 85, 94, 103, 112, 121]
 | 
				
			||||
>>> range(23)
 | 
				
			||||
range(0, 23)
 | 
				
			||||
```
 | 
				
			||||
Получили последовательность от 0 до 22 с шагом 1
 | 
				
			||||
 | 
				
			||||
функция `zip`
 | 
				
			||||
```py
 | 
				
			||||
>>> qq = ['Kovalenko', 'Ivanov', 'Mahnov', 'Hodyuk']
 | 
				
			||||
>>> ff=zip(gg,qq)
 | 
				
			||||
>>> tuple(ff)
 | 
				
			||||
((76, 'Kovalenko'), (85, 'Ivanov'), (94, 'Mahnov'), (103, 'Hodyuk'))
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
функция `eval`
 | 
				
			||||
```py
 | 
				
			||||
>>> fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
 | 
				
			||||
коэффициент усиления=2
 | 
				
			||||
>>> dan
 | 
				
			||||
-146.0
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
функция `exec`
 | 
				
			||||
```py
 | 
				
			||||
>>> exec(input('введите инструкции:'))
 | 
				
			||||
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
 | 
				
			||||
>>> gg
 | 
				
			||||
221.456
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
самостоятельно изучим функции `divmod` и `map`
 | 
				
			||||
```py
 | 
				
			||||
a = map(lambda val: len(val), qq)
 | 
				
			||||
>>> print(list(a))
 | 
				
			||||
[9, 6, 6, 6]
 | 
				
			||||
 | 
				
			||||
>>> divmod(10, 3)
 | 
				
			||||
(3, 1)
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 4.2 Изучим функции модуля math
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
 >> import math
 | 
				
			||||
>>> dir(math)
 | 
				
			||||
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', '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', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
 | 
				
			||||
>>> help(math.factorial)
 | 
				
			||||
factorial(x, /)
 | 
				
			||||
    Find x!.
 | 
				
			||||
    
 | 
				
			||||
    Raise a ValueError if x is negative or non-integral.
 | 
				
			||||
>>> math.factorial(5)  
 | 
				
			||||
120
 | 
				
			||||
>>> math.sin(2 * math.pi / (7 + math.exp(0.23)))
 | 
				
			||||
0.6895048136223224
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 4.3 Изучим функции модуля cmath
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
import cmath
 | 
				
			||||
>>> 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.4 Изучим функции модуля random
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
>>> import random
 | 
				
			||||
 dir(random)
 | 
				
			||||
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
 | 
				
			||||
help(random.seed)
 | 
				
			||||
seed(a=None, version=2) method of random.Random instance
 | 
				
			||||
    Initialize internal state from a seed.
 | 
				
			||||
    
 | 
				
			||||
    The only supported seed types are None, int, float,
 | 
				
			||||
    str, bytes, and bytearray.
 | 
				
			||||
    
 | 
				
			||||
    None or no argument seeds from current time or from an operating
 | 
				
			||||
    system specific randomness source if available.
 | 
				
			||||
    
 | 
				
			||||
    If *a* is an int, all bits are used.
 | 
				
			||||
    
 | 
				
			||||
    For version 2 (the default), all of the bits are used if *a* is a str,
 | 
				
			||||
    bytes, or bytearray.  For version 1 (provided for reproducing random
 | 
				
			||||
    sequences from older versions of Python), the algorithm for str and
 | 
				
			||||
    bytes generates a narrower range of seeds.
 | 
				
			||||
 | 
				
			||||
>>> random.seed()
 | 
				
			||||
 | 
				
			||||
random.seed()
 | 
				
			||||
>>> randoms = [random.gauss(0, 1), random.random(), random.betavariate(1, 2), random.gammavariate(2, 3)]
 | 
				
			||||
randoms
 | 
				
			||||
[0.6215069973322431, 0.08807819378198645, 0.5664749235248212, 4.506587762379303]
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 4.5 Изучим функции модуля time
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
>>> import time
 | 
				
			||||
>>> dir(time)
 | 
				
			||||
['CLOCK_MONOTONIC', 'CLOCK_MONOTONIC_RAW', 'CLOCK_PROCESS_CPUTIME_ID', 'CLOCK_REALTIME', 'CLOCK_THREAD_CPUTIME_ID', 'CLOCK_UPTIME_RAW', '_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
 | 
				
			||||
1760084296.501437
 | 
				
			||||
 | 
				
			||||
>>> c2=time.time()-c1
 | 
				
			||||
>>> c2
 | 
				
			||||
19.090100049972534
 | 
				
			||||
 | 
				
			||||
>>> dat=time.gmtime()
 | 
				
			||||
>>> dat
 | 
				
			||||
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=8, tm_min=19, tm_sec=3, tm_wday=4, tm_yday=283, tm_isdst=0)
 | 
				
			||||
>>> dat.tm_mon
 | 
				
			||||
10
 | 
				
			||||
>>> dat.tm_min
 | 
				
			||||
19
 | 
				
			||||
 | 
				
			||||
>>> time.localtime()
 | 
				
			||||
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=11, tm_min=22, tm_sec=32, tm_wday=4, tm_yday=283, tm_isdst=0)
 | 
				
			||||
 | 
				
			||||
>>> time.localtime(c1)
 | 
				
			||||
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=11, tm_min=18, tm_sec=16, tm_wday=4, tm_yday=283, tm_isdst=0)
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 4.6 Изучим графические функции
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
>>> import pylab
 | 
				
			||||
>>> x=list(range(-3,55,4))
 | 
				
			||||
>>> t=list(range(15))
 | 
				
			||||
pylab.plot(t,x)
 | 
				
			||||
pylab.title('Первый график')
 | 
				
			||||
pylab.xlabel('время')
 | 
				
			||||
pylab.ylabel('сигнал')
 | 
				
			||||
pylab.show()
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||
Полученный график сохранил как [Ris1.png](Ris1.png)
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
>>> X1=[12,6,8,10,7] 
 | 
				
			||||
>>> X2=[5,7,9,11,13]
 | 
				
			||||
pylab.plot(X1)
 | 
				
			||||
pylab.plot(X2)
 | 
				
			||||
pylab.show()
 | 
				
			||||
 | 
				
			||||
region=['Центр','Урал','Сибирь','Юг']
 | 
				
			||||
naselen=[65,12,23,17]
 | 
				
			||||
pylab.pie(naselen,labels=region)
 | 
				
			||||
pylab.show()  
 | 
				
			||||
```
 | 
				
			||||
Полученный график сохранил как [Ris2.png](Ris2.png)
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
X1=[12,6,8,10,7, 7, 7, 6, 12, 12, 12] 
 | 
				
			||||
pylab.hist(X1)
 | 
				
			||||
pylab.show()
 | 
				
			||||
 | 
				
			||||
region=['Центр','Урал','Сибирь','Юг']
 | 
				
			||||
naselen=[65,12,23,17]
 | 
				
			||||
pylab.bar(region, naselen)
 | 
				
			||||
pylab.show()
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 4.7 Изучим функции модуля statistics
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
import statistics
 | 
				
			||||
>>> dir(statistics)
 | 
				
			||||
 | 
				
			||||
>>> a = [1, 2, 3, 4, 5]
 | 
				
			||||
>>> statistics.mean(a)
 | 
				
			||||
3
 | 
				
			||||
>>> statistics.sqrt(9)
 | 
				
			||||
3.0
 | 
				
			||||
>>> statistics.exp(3)
 | 
				
			||||
20.085536923187668
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
@ -0,0 +1,36 @@
 | 
				
			||||
# Общее контрольное задание по теме 4
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание
 | 
				
			||||
 | 
				
			||||
•	Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа `0.2+0.8j`, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.\
 | 
				
			||||
•	Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.\
 | 
				
			||||
•	Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели. \
 | 
				
			||||
•	Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.\
 | 
				
			||||
•	Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.\
 | 
				
			||||
•	Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.\
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
from cmath import *
 | 
				
			||||
from time import localtime, mktime
 | 
				
			||||
from random import sample, choice, gauss
 | 
				
			||||
from string import ascii_letters
 | 
				
			||||
 | 
				
			||||
tuple(divmod(round(phase(0.2+0.8j), 2) * 20, 3))
 | 
				
			||||
now = localtime()
 | 
				
			||||
nowStr = f'{now.tm_hour}:{now.tm_min}'
 | 
				
			||||
 | 
				
			||||
days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс']
 | 
				
			||||
rDays = sample(days, 3)
 | 
				
			||||
rNum = choice(range(14, 32, 3))
 | 
				
			||||
nNum = round(gauss(15, 4))
 | 
				
			||||
rLets = sample(list(ascii_letters), nNum)
 | 
				
			||||
 | 
				
			||||
updNow = localtime()
 | 
				
			||||
diff = (mktime(updNow) - mktime(now)) // 60
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,19 @@
 | 
				
			||||
# Индивидуальное контрольное задание по теме 4
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание 4
 | 
				
			||||
 | 
				
			||||
Напишите инструкцию определения текущего Московского времени. С задержкой на 5 секунд выведите его на экран по шаблону: «В Москве <> часов и <> минут».
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
from time import localtime, sleep
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
print('Смотрю время и вывожу на экран через 5 секунд')
 | 
				
			||||
time = localtime()
 | 
				
			||||
sleep(5)
 | 
				
			||||
print(f'В Москве {time.tm_hour} часов и {time.tm_min} минут')
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,6 @@
 | 
				
			||||
from time import localtime, sleep
 | 
				
			||||
 | 
				
			||||
print('Смотрю время и вывожу на экран через 5 секунд')
 | 
				
			||||
time = localtime()
 | 
				
			||||
sleep(5)
 | 
				
			||||
print(f'В Москве {time.tm_hour} часов и {time.tm_min} минут')
 | 
				
			||||
@ -0,0 +1,138 @@
 | 
				
			||||
# Отчет по теме 5
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## 5 Блоки инструкций, управляющие инструкции
 | 
				
			||||
 | 
				
			||||
### 5.1 Изучим ветвления if
 | 
				
			||||
```py
 | 
				
			||||
porog = 12
 | 
				
			||||
rashod1 = 5
 | 
				
			||||
rashod2 = 7
 | 
				
			||||
dohod = 0
 | 
				
			||||
if rashod1 >= porog:
 | 
				
			||||
    dohod = 12
 | 
				
			||||
elif rashod2 == porog:
 | 
				
			||||
    dohod = 0
 | 
				
			||||
else:
 | 
				
			||||
    dohod =- 8
 | 
				
			||||
>>> dohod
 | 
				
			||||
-8
 | 
				
			||||
 | 
				
			||||
if rashod1 >= 3 and rashod2 == 4:
 | 
				
			||||
    dohod = rashod1
 | 
				
			||||
    if rashod2 == porog or rashod1 < rashod2:
 | 
				
			||||
        dohod = porog
 | 
				
			||||
 | 
				
			||||
if porog == 3:
 | 
				
			||||
    dohod = 1
 | 
				
			||||
elif porog == 4:
 | 
				
			||||
    dohod = 2
 | 
				
			||||
elif porog == 5:
 | 
				
			||||
    dohod = 3
 | 
				
			||||
else:
 | 
				
			||||
    dohod = 0
 | 
				
			||||
 | 
				
			||||
>>> dohod=2 if porog>=4 else 0
 | 
				
			||||
>>> if porog>=5 : rashod1=6; rashod2=0
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
### 5.2 Изучим цикл for
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
temperatura = 5
 | 
				
			||||
for i in range(3, 18, 3):
 | 
				
			||||
    temperatura += i
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
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)
 | 
				
			||||
 | 
				
			||||
301
 | 
				
			||||
...
 | 
				
			||||
...
 | 
				
			||||
436
 | 
				
			||||
```
 | 
				
			||||
Как можно видеть, программа не всегда выводит значения на экран. Это происходит из-за оперратора `break`, который завершает цикл, если сумма ss первысила 500. В этом случае `else` не выполняется. 
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
stroka='Это – автоматизированная система'
 | 
				
			||||
stroka1=""
 | 
				
			||||
for ss in stroka:
 | 
				
			||||
    stroka1+=" "+ss
 | 
				
			||||
 | 
				
			||||
import math, pylab
 | 
				
			||||
sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
 | 
				
			||||
 | 
				
			||||
pylab.plot(sps2)
 | 
				
			||||
pylab.show()
 | 
				
			||||
```
 | 
				
			||||
Полученный график: 
 | 
				
			||||
 | 
				
			||||
### 5.3 Изучим цикл while
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
rashod = 300
 | 
				
			||||
while rashod:
 | 
				
			||||
    print("Расход=",rashod)
 | 
				
			||||
    rashod-=50
 | 
				
			||||
 | 
				
			||||
Расход= 300
 | 
				
			||||
Расход= 250
 | 
				
			||||
Расход= 200
 | 
				
			||||
Расход= 150
 | 
				
			||||
Расход= 100
 | 
				
			||||
Расход= 50
 | 
				
			||||
 | 
				
			||||
import math, pylab
 | 
				
			||||
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
 | 
				
			||||
else:
 | 
				
			||||
    pylab.plot(sps2)
 | 
				
			||||
    pylab.show()
 | 
				
			||||
```
 | 
				
			||||
Полученный график: 
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
for chislo in range(250, 501):
 | 
				
			||||
    kandidat =chislo // 2 	
 | 
				
			||||
    while kandidat > 1:
 | 
				
			||||
        if chislo%kandidat == 0:
 | 
				
			||||
            print(chislo, ' имеет множитель ', kandidat)
 | 
				
			||||
            break
 | 
				
			||||
        kandidat -= 1
 | 
				
			||||
    else:
 | 
				
			||||
        print(chislo, ' является простым!')
 | 
				
			||||
 | 
				
			||||
267  имеет множитель  89
 | 
				
			||||
```
 | 
				
			||||
| 
		 После Ширина: | Высота: | Размер: 37 KiB  | 
| 
		 После Ширина: | Высота: | Размер: 16 KiB  | 
@ -0,0 +1,42 @@
 | 
				
			||||
# Общее контрольное задание по теме 5
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание
 | 
				
			||||
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:\
 | 
				
			||||
•	Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.\
 | 
				
			||||
•	Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).\
 | 
				
			||||
•	Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
from string import ascii_lowercase
 | 
				
			||||
text = '''Bury the light deep within
 | 
				
			||||
Cast aside, there's no coming home'''
 | 
				
			||||
 | 
				
			||||
for el in text:
 | 
				
			||||
    index = ascii_lowercase.find(el.lower())
 | 
				
			||||
    print(index + 1 if index != -1 else el, end='')
 | 
				
			||||
print()
 | 
				
			||||
 | 
				
			||||
words = ['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта', 'Для', 'этого', 'списка', 'определите', 'есть', 'ли', 'в', 'нем', 'некоторое', 'заданное', 'значение', 'и', 'выведите', 'соответствующее', 'сообщение', 'либо', 'о', 'нахождении', 'элемента', 'либо', 'о', 'его', 'отсутствии', 'в', 'списке', 'проверить', 'как', 'с', 'имеющимся', 'так', 'и', 'с', 'отсутствующим', 'словом']
 | 
				
			||||
keyWord = input('Введите слово, искомое в списке: ')
 | 
				
			||||
 | 
				
			||||
result = f'есть в списке' if keyWord in words else 'отсутствует в списке'
 | 
				
			||||
print(f'Введенное Вами слово {keyWord} {result}')
 | 
				
			||||
 | 
				
			||||
surnames1 = ['Коваленко', 'Лыкова', 'Ходюк']
 | 
				
			||||
marks1 = [4.75, 3.75, 4.75]
 | 
				
			||||
surnames2 = ['Лыкова', 'Коваленко', 'Ходюк']
 | 
				
			||||
marks2 = [3.25, 4.5, 4.75]
 | 
				
			||||
 | 
				
			||||
student = input('Введите фамилию студента: ')
 | 
				
			||||
if student in surnames1:
 | 
				
			||||
    print(f'Средний балл студента {student} за летнюю сессию {marks1[surnames1.index(student)]} и {marks2[surnames2.index(student)]} за зимнюю')
 | 
				
			||||
else:
 | 
				
			||||
    print('Студент отсутствует в списке')
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,25 @@
 | 
				
			||||
from string import ascii_lowercase
 | 
				
			||||
text = '''Bury the light deep within
 | 
				
			||||
Cast aside, there's no coming home'''
 | 
				
			||||
 | 
				
			||||
for el in text:
 | 
				
			||||
    index = ascii_lowercase.find(el.lower())
 | 
				
			||||
    print(index + 1 if index != -1 else el, end='')
 | 
				
			||||
print()
 | 
				
			||||
 | 
				
			||||
words = ['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта', 'Для', 'этого', 'списка', 'определите', 'есть', 'ли', 'в', 'нем', 'некоторое', 'заданное', 'значение', 'и', 'выведите', 'соответствующее', 'сообщение', 'либо', 'о', 'нахождении', 'элемента', 'либо', 'о', 'его', 'отсутствии', 'в', 'списке', 'проверить', 'как', 'с', 'имеющимся', 'так', 'и', 'с', 'отсутствующим', 'словом']
 | 
				
			||||
keyWord = input('Введите слово, искомое в списке: ')
 | 
				
			||||
 | 
				
			||||
result = f'есть в списке' if keyWord in words else 'отсутствует в списке'
 | 
				
			||||
print(f'Введенное Вами слово {keyWord} {result}')
 | 
				
			||||
 | 
				
			||||
surnames1 = ['Коваленко', 'Лыкова', 'Ходюк']
 | 
				
			||||
marks1 = [4.75, 3.75, 4.75]
 | 
				
			||||
surnames2 = ['Лыкова', 'Коваленко', 'Ходюк']
 | 
				
			||||
marks2 = [3.25, 4.5, 4.75]
 | 
				
			||||
 | 
				
			||||
student = input('Введите фамилию студента: ')
 | 
				
			||||
if student in surnames1:
 | 
				
			||||
    print(f'Средний балл студента {student} за летнюю сессию {marks1[surnames1.index(student)]} и {marks2[surnames2.index(student)]} за зимнюю')
 | 
				
			||||
else:
 | 
				
			||||
    print('Студент отсутствует в списке')
 | 
				
			||||
@ -0,0 +1,24 @@
 | 
				
			||||
# Индивидуальное контрольное задание по теме 5
 | 
				
			||||
 | 
				
			||||
Коваленко Дмитрий, А-01-23
 | 
				
			||||
 | 
				
			||||
## Задание 1
 | 
				
			||||
 | 
				
			||||
Запишите свой e-mail – адрес в виде символьной строки. Напишите инструкции, разделяющие эту строку на две: строка1, содержащая все буквы из состава адреса, и строка 2, содержащая все остальные символы.
 | 
				
			||||
 | 
				
			||||
## Решение
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
from string import ascii_lowercase as letters
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
email = 'KovalenkoDM@mpei.ru'
 | 
				
			||||
emailLetters = ''
 | 
				
			||||
emailSimbols = ''
 | 
				
			||||
for el in email:
 | 
				
			||||
    if letters.find(el.lower()) != -1:
 | 
				
			||||
        emailLetters += el
 | 
				
			||||
    else:
 | 
				
			||||
        emailSimbols += el
 | 
				
			||||
print(f'Letters in email are {emailLetters}\nSimbols in email are {emailSimbols}')
 | 
				
			||||
```
 | 
				
			||||
@ -0,0 +1,12 @@
 | 
				
			||||
from string import ascii_lowercase as letters
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
email = 'KovalenkoDM@mpei.ru'
 | 
				
			||||
emailLetters = ''
 | 
				
			||||
emailSimbols = ''
 | 
				
			||||
for el in email:
 | 
				
			||||
    if letters.find(el.lower()) != -1:
 | 
				
			||||
        emailLetters += el
 | 
				
			||||
    else:
 | 
				
			||||
        emailSimbols += el
 | 
				
			||||
print(f'Letters in email are {emailLetters}\nSimbols in email are {emailSimbols}')
 | 
				
			||||
					Загрузка…
					
					
				
		Ссылка в новой задаче