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

...

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

Автор SHA1 Сообщение Дата
KhatiukhinYS 6c5ebb68d2 IKZ
2 недель назад
KhatiukhinYS 53b067d900 IKZ
2 недель назад
KhatiukhinYS d62679c8a1 Tema 4
2 недель назад
KhatiukhinYS b9d359be65 test
4 недель назад
KhatiukhinYS 84df5ff6b8 Tema 3
4 недель назад
KhatiukhinYS ed719a2ff1 Tema2
1 месяц назад
KhatiukhinYS 8c0877c95b Tema1
1 месяц назад

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

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

После

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

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

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

После

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

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

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

После

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

@ -0,0 +1,6 @@
#Программа по теме 1 Хатюхин Евгений Сергеевич
print('Hello')
h = input('Your name = ')
import os
os.chdir(r'C:\python-labs\TEMA1')

@ -0,0 +1,55 @@
# Протокол по Теме 1 Хатюхин Евгений Сергеевич
===================== RESTART: C:/python-labs/TEMA1/Pr0.py =====================
Hello
Your name = Jenya
import prb1
Как Вас зовут? Jenya
Привет, Jenya
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(input)
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.
===================== RESTART: C:\python-labs\TEMA1\prb1.py ====================
Как Вас зовут? Jenya
Привет, Jenya
================= RESTART: C:\python-labs\TEMA1\tdemo_chaos.py =================

@ -0,0 +1,128 @@
# Отчет по теме 1
Хатюхин Евгений, А-02-23
## 1 Создание рабочей папки в GITHUB
## 2 Запуск программы-интерпретатора
## 3 Проверка работы интерпретатора
После символов >>> я ввел инструкцию:
```py
print("Hello")
```
Интерпретатор успешно выполнил эту команду и вывел мне Hello. Я убедился, что он работает.
## 4 Применение команды для ввода текста пользователем
Я ввел еще 1 инструкцию:
```py
h = input("Your name = ")
```
Интерпретатор вывел Your name = , после чего я ввел свое имя.
## 5 Завершение работы с интерпретатором
Ввел инструкцию:
```py
exit()
```
И вышел из интерпретатора
## 6 Запустил графическую оболочку IDLE
## 7 Изучил функционал окна среды
## 8 Настройка рабочего каталога среды
Ввел команды:
```py
import os
os.chdir(r'C:\python-labs\TEMA1')
```
И с помощью них настроил свой рабочий каталог в папке Тема1
## 9 Изучил главное меню и изменил шрифт и размер текста под себя
## 10 Создание файла с инструкциями
Создал новый файл и добавил в него все нужные команды:
```py
#Программа по теме 1 Хатюхин Евгений Сергеевич
print('Hello')
h = input('Your name = ')
import os
os.chdir(r'C:\python-labs\TEMA1')
```
Запустил эту программу 3 разными способами:
1) Через run module
2) через f5
3) через ввод инструкции:
```py
import Pr0
```
## 11 Запустил программу prb1.py
Через повторение ранее введенной команды с помощью курсора мыши и enter получил команду:
```py
import Pr0
```
Которую отредактировал до:
```py
import prb1
Как Вас зовут? Jenya
Привет, Jenya
```
## 12 Открыл файл Pr0.cpython-311.pyc
Там я увидел непонтяные символы. Это связано с тем, что компилятор пайтона переводит код в байт-код в одной кодировке
а блокнот считывает этот код в другой кодировке, из-за этого один и тот же код элемента будет выдавать 2 разных символа.
Этот файл нам нужен, чтобы при последующих компиляциях программы она быстрее обрабатывалась.
## 13 Создал протокол по Теме 1 и внес в него копию всех строк из командной строки. Сохранил этот файл и назвал Protocol.py
## 14 Изучение раздела Help
Был изучен раздел Help и получена информация про инструкцию print:
```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.
```
Также были введены две команды в 1 строчке через ; и получена информация про print и input:
```py
help(print);help(input)
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.
```
В документации по Питону была найдена информация по функции print():
![[1.png]]
## 15 Были изучены графические примеры среды
1) Была изучена программа для вывод нескольких графиков по точкам:
![[2.png]]
2) Был изучен раздел помощи по графическим программам и пример с часами:
![[3.png]]
Такие шаблоны программ очень сильно облегчают написание своих собственных инструкций.
## 16 Завершение работы со средой

@ -0,0 +1,306 @@
Python 3.13.2 (tags/v3.13.2:4f8bb39, Feb 4 2025, 15:23:48) [MSC v.1942 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
f1=16; f2=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__', '__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__']
gg1=1.6 #значение в виде вещественного числа
hh1='Строка' #значение в виде символьной строки
73sr=3 #неправильное имя – начинается с цифры - будет диагностика!
SyntaxError: invalid decimal literal
and=7 #недопустимое имя – совпадает с ключевым словом - будет диагностика!
SyntaxError: invalid syntax
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'gg1', 'hh1']
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']
kl = keyword.kwlist
kl
['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']
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', 'WindowsError', '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
len("len")
3
max(1,25)
25
min(1,25)
1
pow(2,3)
8
pow(2,3,3)
2
round(2.85)
3
>>> round(2.855,2)
2.85
>>> round(2.856,2)
2.86
>>> sorted(3,2,1)
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
sorted(3,2,1)
TypeError: sorted expected 1 argument, got 3
>>> sorted(321)
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
sorted(321)
TypeError: 'int' object is not iterable
>>> sorted("c",'b','a')
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
sorted("c",'b','a')
TypeError: sorted expected 1 argument, got 3
>>> sorted("cba")
['a', 'b', 'c']
>>> sum(5,2)
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
sum(5,2)
TypeError: 'int' object is not iterable
>>> sum([3,7])
10
>>> list(zip([1,2,3],['a','b','c']))
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> Gg1 = 45
>>> gg1
1.6
>>> dir()
['Gg1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'builtins', 'gg1', 'hh1', 'keyword', 'kl']
>>> Gg1
45
bb1=True; bb2=False
bb1;bb2
True
False
type(bb1)
<class 'bool'>
ii1=-1234567890
ff1=-8.9876e-12 #экспоненциальная форма записи вещественного числа
dv1=0b1101010 #Это – двоичное число. В объекте какого класса оно сохранено?
type(dv1)
<class 'int'>
vsm1=0o52765 #Это – восьмеричное число
type(vsm1)
<class 'int'>
shest1=0x7109af6 #Это – шестнадцатеричное число
type(shest1)
<class 'int'>
cc1=2-3j
type(cc1)
<class 'complex'>
a=3.67; b=-0.45
cc2=complex(a,b) #Создается комплексное число
ss1='Это - строка символов'
ss1
'Это - строка символов'
ss1="Это - строка символов"
ss1
'Это - строка символов'
ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
print(ss1a)
Это - " строка символов ",
выводимая на двух строках
ss1b= 'Меня зовут: \n Хатюхин Е.С.'
ss1b
'Меня зовут: \n Хатюхин Е.С.'
ss1b='Меня зовут: \n Хатюхин Е.С.'
print(ss1b)
Меня зовут:
Хатюхин Е.С.
mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
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:3:-2]
'омсаот '
ss1[4]='=' # Будет диагностика!
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
ss1[4]='=' # Будет диагностика!
TypeError: 'str' object does not support item assignment
ss2 = ss1[:6] + ss1b[-12:]
ss2
'Это - Хатюхин Е.С.'
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] # вошло 4 элемента, начиная со 2 через 1(если по индексам: 1,3,5,7)
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]
len(spis1)
3
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') # В конец списка добавлен элемент «New item»
spis1+['New item']
[111, 'Список', (5-9j), 'New item', 'New item']
spis1.append('New item') # В конец списка добавлен элемент «New item»
spis1.append(ss1b)
spis1
[111, 'Список', (5-9j), 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']
spis1.pop(1) #Из списка удален элемент с индексом 1
'Список'
stup.insert(1,2)
stup
[0, 2, 0, 1, 1, 1, 1, 1, 1, 1]
stup.insert(2,123)
stup
[0, 2, 123, 0, 1, 1, 1, 1, 1, 1, 1]
stup.remove(123)
stup
[0, 2, 0, 1, 1, 1, 1, 1, 1, 1]
last = [4,6,8
]
stup.extend(last)
stup
[0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 4, 6, 8]
stup.sort()
stup
[0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 4, 6, 8]
stup.reverse()
stup
[8, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0]
stup.copy()
[8, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0]
stup.count(1)
7
stup.index(2)
3
stup.clear()
stup
[]
spis2=[spis1,[4,5,6,7]] #здесь элементами являются два списка
spis2[0][1] #обращение к элементу списка spis1
(5-9j)
spis2[0][1]=78 #Убедитесь, что значение элемента заменено на 78
spis2[0][1]
78
spis1
[111, 78, 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']
# список 1 изменился, потому что он входит в элементы списка 2 не как копия, а как ссылка, поэтому любое изменение элементов списка 1 через список 2 приведет к изменению списка 1 как отделной переменной
a = 5
b = True
spisok = [a,ss2,b,spis1]
spisok
[5, 'Это - Хатюхин Е.С.', True, [111, 78, 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']]
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
4
kort1.count(222) #Будет получено значение 1
1
kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
Traceback (most recent call last):
File "<pyshell#98>", line 1, in <module>
kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
TypeError: 'tuple' object does not support item assignment
korteg = (a,ss1,b,spisok,kort1)
korteg
(5, 'Это - строка символов', True, [5, 'Это - Хатюхин Е.С.', True, [111, 78, 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']], (222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n Хатюхин Е.С.'))
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
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]))
kort7 = (1,2,3,4,5,6,7)
kort7
(1, 2, 3, 4, 5, 6, 7)
lis5 = ['a','b','c','d','e']
lis5
['a', 'b', 'c', 'd', 'e']
dic6 = dict(zip(kort7,lis5))
dic6
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
#Длинна нашего словаря равна 5, поскольку zip объединяет элементы в словарь по минимальной длинне аргументов
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
mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
mnoz1
{'двигатель', 'датчик', 'микропроцессор', 'линия связи'}
len(mnoz1)
4
'датчик' in mnoz1
True
mnoz1.add('реле')
mnoz1.remove('линия связи')
mnoz2 = {1, True, long, int, 24, Евгений}
Traceback (most recent call last):
File "<pyshell#136>", line 1, in <module>
mnoz2 = {1, True, long, int, 24, Евгений}
NameError: name 'long' is not defined
mnoz2 = {1, True, 'long', 'int', 24, 'Евгений'}
mnoz2
{1, 24, 'int', 'Евгений', 'long'}
'True' in mnoz2
False
mnoz2.add("True")
'True' in mnoz2
True

@ -0,0 +1,349 @@
# Отчет по теме 2
Хатюхин Евгений, А-02-23
## 1 Создание протокола и настройка рабочей среды
## 2 Простые объекты
Я создал 2 простых объекта, проверил их значения, убедился, что они присутствуют в памяти компьютера, узнал тип одного из объектов, удалил эти объекты и убедился, что они пропали из памяти компьютера.
```py
f1=16; f2=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__', '__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__']
```
## 3 Изучил правила именования объектов в пайтон и проверил их на практике
```py
gg1=1.6 #значение в виде вещественного числа
hh1='Строка' #значение в виде символьной строки
73sr=3 #неправильное имя – начинается с цифры - будет диагностика!
SyntaxError: invalid decimal literal
and=7 #недопустимое имя – совпадает с ключевым словом - будет диагностика!
SyntaxError: invalid syntax
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'gg1', 'hh1']
```
## 4 Просмотрел список ключевых слов и присвоил его переменной
```py
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']
kl = keyword.kwlist
kl
['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']
```
## 5 Просмотрел список встроенных идентификаторов и изучил некоторые из них с помощью функции help
- abs - выдает значение по модулю
- len - выдает длину объекта
- max - выдает максимальное число из списка введенных в аргумент
- min - выдает минимальное число из списка введенных в аргумент
- pow - при двух аргументах: возводит первый в степень второго. При наличие третьего аргумента делит получившийся результат на третий аргумент и показывает остаток
- round - округляет число до целого ,если 1 аргумент. При наличие второго аргумента округляет до стольких цифр после запятой, сколько указано во втором аргументе
- sorted - сортирует числа или буквы по возрастанию или убыванию
- sum - суммирует числа
- zip - создает итератор, который объединяет элементы из нескольких перебираемых объектов по соответствию.
```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', 'WindowsError', '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
len("len")
3
max(1,25)
25
min(1,25)
1
pow(2,3)
8
pow(2,3,3)
2
round(2.85)
3
round(2.855,2)
2.85
round(2.856,2)
2.86
sorted("cba")
['a', 'b', 'c']
sum([3,7])
10
list(zip([1,2,3],['a','b','c']))
[(1, 'a'), (2, 'b'), (3, 'c')]
```
## 6 Убедился, что переменные чувствительны к регистру
```py
Gg1 = 45
gg1
1.6
Gg1
45
```
## 7 Изучил простые базовые объекты
### 7.1 Изучил логический тип данных(bool)
```py
bb1=True; bb2=False
bb1;bb2
True
False
type(bb1)
<class 'bool'>
```
### 7.2 Изучил другие простые типы данных(int,float,complex)
```py
ii1=-1234567890
ff1=-8.9876e-12 #экспоненциальная форма записи вещественного числа
dv1=0b1101010 #Это – двоичное число. В объекте какого класса оно сохранено?
type(dv1)
<class 'int'>
vsm1=0o52765 #Это – восьмеричное число
type(vsm1)
<class 'int'>
shest1=0x7109af6 #Это – шестнадцатеричное число
type(shest1)
<class 'int'>
cc1=2-3j
type(cc1)
<class 'complex'>
a=3.67; b=-0.45
cc2=complex(a,b) #Создается комплексное число
```
### 7.3 Изучил тип объекта - строка-символ
```py
ss1='Это - строка символов'
ss1
'Это - строка символов'
ss1="Это - строка символов"
ss1
'Это - строка символов'
ss1a="Это - \" строка символов \", \n \t выводимая на двух строках"
print(ss1a)
Это - " строка символов ",
выводимая на двух строках
ss1b= 'Меня зовут: \n Хатюхин Е.С.'
ss1b
'Меня зовут: \n Хатюхин Е.С.'
ss1b='Меня зовут: \n Хатюхин Е.С.'
print(ss1b)
Меня зовут:
Хатюхин Е.С.
mnogo="""Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции."""
print(mnogo)
Нетрудно заметить , что в результате операции
над числами разных типов получается число,
имеющее более сложный тип из тех, которые участвуют в операции.
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:3:-2]
'омсаот '
ss1[4]='=' # Будет диагностика!
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
ss1[4]='=' # Будет диагностика!
TypeError: 'str' object does not support item assignment
ss2 = ss1[:6] + ss1b[-12:]
ss2
'Это - Хатюхин Е.С.'
```
## 8 Изучил более сложные типы данных
### 8.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] # вошло 4 элемента, начиная со 2 через 1(если по индексам: 1,3,5,7)
[0, 1, 1, 1]
spis1[1]='Список'
spis1
[111, 'Список', (5-9j)]
len(spis1)
3
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') # В конец списка добавлен элемент «New item»
spis1+['New item']
[111, 'Список', (5-9j), 'New item', 'New item']
spis1.append('New item') # В конец списка добавлен элемент «New item»
spis1.append(ss1b)
spis1
[111, 'Список', (5-9j), 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']
spis1.pop(1) #Из списка удален элемент с индексом 1
'Список'
```
Методы:
- insert - вставляет элемент соответствующий второму аргументу на индекс равный первому аргументу
- remove - удаляет первый элемент из списка, который соответствует значению аргумента
- extend - добaвляет в конец списка все элемента из объекта в аргументе
- sort - сортирует элементы по порядку
- reverse - переворачивает порядок элементов списка
- copy - создает копию списка
- count - возвращает число, сколько раз элемент из аргумента встречается в списке
- index - возвращает индекс первого вхождения элемента соответствующему аргументу.
- clear - очищает список
```py
stup.insert(1,2)
stup
[0, 2, 0, 1, 1, 1, 1, 1, 1, 1]
stup.insert(2,123)
stup
[0, 2, 123, 0, 1, 1, 1, 1, 1, 1, 1]
stup.remove(123)
stup
[0, 2, 0, 1, 1, 1, 1, 1, 1, 1]
last = [4,6,8
]
stup.extend(last)
stup
[0, 2, 0, 1, 1, 1, 1, 1, 1, 1, 4, 6, 8]
stup.sort()
stup
[0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 4, 6, 8]
stup.reverse()
stup
[8, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0]
stup.copy()
[8, 6, 4, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0]
stup.count(1)
7
stup.index(2)
3
stup.clear()
stup
[]
```
```py
spis2=[spis1,[4,5,6,7]] #здесь элементами являются два списка
spis2[0][1] #обращение к элементу списка spis1
(5-9j)
spis2[0][1]=78 #Убедитесь, что значение элемента заменено на 78
spis2[0][1]
78
spis1
[111, 78, 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']
# список 1 изменился, потому что он входит в элементы списка 2 не как копия, а как ссылка, поэтому любое изменение элементов списка 1 через список 2 приведет к изменению списка 1 как отделной переменной
a = 5
b = True
spisok = [a,ss2,b,spis1]
spisok
[5, 'Это - Хатюхин Е.С.', True, [111, 78, 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']]
```
### 8.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
4
kort1.count(222) #Будет получено значение 1
1
kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
Traceback (most recent call last):
File "<pyshell#98>", line 1, in <module>
kort1[2]=90 #Будет получена диагностика о невозможности изменения кортежа
TypeError: 'tuple' object does not support item assignment
korteg = (a,ss1,b,spisok,kort1)
korteg
(5, 'Это - строка символов', True, [5, 'Это - Хатюхин Е.С.', True, [111, 78, 'New item', 'New item', 'Меня зовут: \n Хатюхин Е.С.']], (222, 'Kortezh', (77+8j), 1, 2, 'Меня зовут: \n Хатюхин Е.С.'))
```
### 8.3 Изучил объект-словарь
```py
dic1={'Saratov':145, 'Orel':56, 'Vologda':45}
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]))
kort7 = (1,2,3,4,5,6,7)
kort7
(1, 2, 3, 4, 5, 6, 7)
lis5 = ['a','b','c','d','e']
lis5
['a', 'b', 'c', 'd', 'e']
dic6 = dict(zip(kort7,lis5))
dic6
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}
#Длинна нашего словаря равна 5, поскольку zip объединяет элементы в словарь по минимальной длинне аргументов
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
```
### 8.4 Изучил объект-множество
```py
mnoz1={'двигатель','датчик','линия связи','датчик','микропроцессор','двигатель'}
mnoz1
{'двигатель', 'датчик', 'микропроцессор', 'линия связи'}
len(mnoz1)
4
'датчик' in mnoz1
True
mnoz1.add('реле')
mnoz1.remove('линия связи')
mnoz2 = {1, True, long, int, 24, Евгений}
Traceback (most recent call last):
File "<pyshell#136>", line 1, in <module>
mnoz2 = {1, True, long, int, 24, Евгений}
NameError: name 'long' is not defined
mnoz2 = {1, True, 'long', 'int', 24, 'Евгений'}
mnoz2
{1, 24, 'int', 'Евгений', 'long'}
'True' in mnoz2
False
mnoz2.add("True")
'True' in mnoz2
True
```
## 9 Завершил сеанс работы в IDLE

@ -0,0 +1,48 @@
# Общее контрольное задание по теме 2
Хатюхин Евгений А-02-23
## Задание
•Создать переменную с именем familia и со значением - символьной строкой – своей фамилией в латинской транскрипции.
•Создать переменную со значением, совпадающим с первой буквой из familia.
•Создать переменную с именем sp_kw со значением – списком всей ключевых слов языка Python.
•Удалите из списка sp_kw значение 'nonlocal'. Выводом списка в командном окне IDLE убедитесь, что это значение удалено из списка.
•Создайте кортеж kort_nam с именами: вашим и еще 3-х студентов из вашей группы. Напишите инструкцию, позволяющую убедиться, что тип переменной – это tuple.
•Напишите инструкцию, добавляющую в kort_nam имена еще двух студентов.
•Напишите инструкцию, позволяющую определить, сколько раз в кортеже присутствуют студенты с именем «Дима».
•Создайте словарь dict_bas, в котором ключами являются русские названия типов переменных, использованных в предыдущих операторах, а значениями – ранее созданные переменные, соответствующие этим типам.
## Решение
```py
familia = 'KhatiukhinYS'
f = familia[0]
f
'K'
import keyword
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_name = ('Jenya','Stas','Lena','Andrew')
type(kort_nam)
<class 'tuple'>
kort_nam = kort_nam + ('Dima','Denis')
kort_nam
('Jenya', 'Stas', 'Lena', 'Andrew', 'Dima', 'Denis')
kort_nam.count('Dima')
1
dict_bas = dict(zip(('str','list','tuple'),(familia,sp_kw,kort_nam)))
dict_bas
{'str': 'KhatiukhinYS', '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', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'], 'tuple': ('Jenya', 'Stas', 'Lena', 'Andrew', 'Dima', 'Denis')}
```

@ -0,0 +1,59 @@
```py
# Общее КЗ
a = int("45", 8)
a
37
D={"усиление":23, "запаздывание":12, "постоянная времени":78}
spis1=list(D)
spis2=list(D.values())
spis1
['усиление', 'запаздывание', 'постоянная времени']
spis2
[23, 12, 78]
kor=tuple(spis1)+tuple(spis2)
kor
('усиление', 'запаздывание', 'постоянная времени', 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])
help(D.keys)
Help on built-in function keys:
keys() method of builtins.dict instance
Return a set-like object providing a view on the dict's keys.
help(D.values)
Help on built-in function values:
values() method of builtins.dict instance
Return an object providing a view on the dict's values.
S="Создать объект - символьную строку с текстом данного предложения"
L=list(S.split())
L
['Создать', 'объект', '-', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения']
L[L.index("-")] = ","
l
Traceback (most recent call last):
File "<pyshell#200>", line 1, in <module>
l
NameError: name 'l' is not defined
L
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'данного', 'предложения']
L.remove("данного")
L
['Создать', 'объект', ',', 'символьную', 'строку', 'с', 'текстом', 'предложения']
```

@ -0,0 +1,555 @@
# Отчет по теме 3
Хатюхин Евгений, А-02-23
## 1 Запуск IDLE
## 2 Преобразование базовых типов объектов в другие типы
### 2.1 Изучил преобразование объектов в логический тип данных
```py
logiz1=bool(56)
logiz2=bool(0)
logiz3=bool("Beta")
logiz4=bool("")
logiz4
False
```
### 2.2 Изучил преобразование объектов в числовой тип данных
```py
tt1=int(198.6) #Отбрасывается дробная часть
tt1
198
tt2=int("-76") #Число – в строке символов, система по умолчанию - десятичная
tt2
-76
tt3=int("B",16)
tt3
11
tt4=int("71",8)
tt4
57
tt5=int("98.76")
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
tt5=int("98.76")
ValueError: invalid literal for int() with base 10: '98.76'
# Т.к. число является вещественным и представлено в виде строки, то для преобразования его в целочисленный тип данных нужно сперва преобразовать строку в тип данных float, а потом из float в int
flt1=float(789)
flt1
789.0
flt2=float(-6.78e2)
flt2
-678.0
flt3=float("Infinity")
flt3
inf
flt4=float("-inf")
flt4
-inf
```
### 2.3 Изучил преобразование целочисленных объектов в строки с двоичным, восьмеричным и шестнадцатеричным представлением и обратное представление
```py
hh=123
dv1=bin(hh) #Преобразование в строку с двоичным представлением
dv1
'0b1111011'
vos1=oct(hh) # Преобразование в строку с восьмеричным представлением
vos1
'0o173'
shs1=hex(hh) # Преобразование в строку с шестнадцатеричным представлением
shs1
'0x7b'
int(dv1,2)
123
int(vos1,8)
123
int(shs1,8*2)
123
```
## 3 Изучил преобразования более сложных базовых типов объектов
### 3.1 Изучил преобразование в строку символов с помощью функции str(<Объект>)
```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}"
```
### 3.2 Изучил преобразование элементов объекта в список с помощью функции list(<Объект>)
```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]
```
### 3.3 Изучил преобразование элементов объектов в кортеж с помощью функции tuple(<Объект>)
```py
kort7=tuple('Строка символов') #Преобразование строки символов в кортеж
kort7
('С', 'т', 'р', 'о', 'к', 'а', ' ', 'с', 'и', 'м', 'в', 'о', 'л', 'о', 'в')
kort8=tuple(spis2) #Преобразование списка в кортеж
kort8
(124, 236, -15, 908)
kort9=tuple({"A":1,"B":2,"C":9}) #Преобразование словаря в кортеж
kort9
('A', 'B', 'C')
```
### 3.4 Изучил удаление объектов
```py
del strk5, kort8
strk5
Traceback (most recent call last):
File "<pyshell#88>", line 1, in <module>
strk5
NameError: name 'strk5' is not defined. Did you mean: 'strk1'?
"strk5" in dir()
False
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']
fam = "Хатюхин Е.С."
fam_ls = list(fam)
fam_ls
['Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.']
fam_krt = tuple(fam_ls)
fam_krt
('Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.')
fam_str = str(fam_krt)
fam_str
"('Х', 'а', 'т', 'ю', 'х', 'и', 'н', ' ', 'Е', '.', 'С', '.')"
```
## 4 Изучил арифметические операции
### 4.1 Изучил сложение и вычитание (+ и -)
```py
12+7+90 # Сложение целых чисел
109
5.689e-1 - 0.456 #Вычитание вещественных чисел
0.11289999999999994
23.6+54 #Сложение вещественного и целого чисел
77.6
14-56.7+89 # Сложение и вычитание целых и вещественных чисел
46.3
```
### 4.2 Изучил умножение (\*)
```py
-6.7*12   #Умножение вещественного числа на целое число
```
### 4.3 Изучил деление (/)
```py
-6.7*12 #Умножение вещественного числа на целое число
-80.4
-234.5/6 #Деление вещественного числа на целое
-39.083333333333336
a=178/45 #Деление двух целых чисел – проверьте тип объекта a!
type(a)
<class 'float'>
a
3.9555555555555557
```
### 4.4 Изучил деление с округлением вниз (//). Здесь результат может быть целым или вещественным. В нижеследующих операциях определите тип результата.
```py
b=178//45 #Деление двух целых чисел
b
3
c=-24.6//12.1 #Деление двух вещественных чисел
c
-3.0
d = -52.2 // 5
d
-11.0
```
### 4.5 Изучил получение остатка от деления (%)
```py
148%33 #Остаток от деления двух целых чисел
16
12.6%3.8 #Остаток от деления двух вещественных чисел
1.2000000000000002
12.6%4
0.5999999999999996
12%4.0
0.0
```
### 4.6 Изучил возведение в степень (\*\*)
```py
14**3 #Целое число возводится в целую степень
2744
e=2.7**3.6 #Вещественное число возводится в вещественную степень
e
35.719843790663525
14**(1/2)
3.7416573867739413
2**(1/2)
1.4142135623730951
```
```py
km1 = 5 - 7j
km2 = 10 - 14j
km1;km2
(5-7j)
(10-14j)
km1 + km2
(15-21j)
km1-km2
(-5+7j)
km1//km2
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
km1//km2
TypeError: unsupported operand type(s) for //: 'complex' and 'complex'
km1/km2
(0.5-0j)
km1**km2
(-1312.815003718761-3445.7568233592656j)
km1%km2
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
km1%km2
TypeError: unsupported operand type(s) for %: 'complex' and 'complex'
```
## 5 Изучил операции с двоичными представлениями целых чисел
### 5.1 Изучил двоичную инверсию (~)
```py
dv1=9
dv2=~dv1
dv2
-10
```
### 5.2 Изучил двоичное «И» (&) – побитовое совпадение двоичных представлений чисел
```py
7&9 # 111 и 1001 = 0001
1
7&8 # 111 и 1000 = 0000
0
```
### 5.3 Изучил двоичное «ИЛИ» (|)
```py
7|9 # 111 или 1001 = 1111
15
7|8 # 111 или 1000 = 1111
15
14|5 # 1110 или 0101 = 1111
15
```
### 5.4 Изучил двоичное «исключающее ИЛИ»(^)
```py
14^5  # 1110 исключающее или 0101 = 1011
```
### 5.5 Изучил сдвиг двоичного представления на заданное число разрядов влево (<<) или вправо (>>) с дополнением нулями, соответственно справа или слева
```py
h=14 #Двоичное представление = 1110
g=h<<2 # Новое двоичное представление = 111000
g
56
g1=h>>1 # Новое двоичное представление = 0111
g1
7
g2=h>>2 # Новое двоичное представление = 0011
g2
3
```
```py
bin1 = int('0101010',2)
bin2 = int('1010101',2)
bin1;bin2
42
85
bin1&bin2
0
bin1|bin2
127
bin1^bin2
127
bin3 = ~bin1
bin3
-43
```
## 6 Изучил операции при работе с последовательностями (строками, списками, кортежами)
### 6.1 Изучил объединение последовательностей (конкатенация)(+)
```py
'Система '+'регулирования' #Соединение двух строк символов
'Система регулирования'
['abc','de','fg']+['hi','jkl'] # Объединение двух списков
['abc', 'de', 'fg', 'hi', 'jkl']
('abc','de','fg')+('hi','jkl') # Объединение двух кортежей
('abc', 'de', 'fg', 'hi', 'jkl')
```
### 6.2 Изучил повторение (\*)
```py
'ля-'*5 #Повторение строки 5 раз
'ля-ля-ля-ля-ля-'
['ку','-']*3 #Повторение списка 3 раза
['ку', '-', 'ку', '-', 'ку', '-']
('кис','-')*4 #Повторение кортежа 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)
```
### 6.3 Изучил проверку наличия заданного элемента в последовательности (in)
```py
stroka='Система автоматического управления'
stroka
'Система автоматического управления'
'автомат' in stroka #Наличие подстроки в строке
True
'ку' in ['ку','-']*3 #Наличие контекста в списке
True
'ля-' in ('abc', 'de', 'fg', 'hi', 'jkl') #Наличие контекста в кортеже
False
```
### 6.4 Изучил подстановку значений в строку с помощью оператора «%»
```py
stroka='Температура = %g %s %g'
stroka
'Температура = %g %s %g'
stroka % (16,' меньше ',25)
'Температура = 16 меньше 25'
stroka='Температура = %(zn1)g %(sravn)s %(zn2)g'
stroka % {'zn1':16,'sravn':' меньше ','zn2':25}
'Температура = 16 меньше 25'
```
## 7 Изучил оператор присваивания
### 7.1 Изучил обычное присваивание значения переменной (=)
```py
zz=-12
zz
-12
```
## 7.2 Изучил увеличение значения переменной на заданную величину  (+=) или уменьшение (-=)
```py
zz+=5 # Значение zz увеличивается на 5
zz
-7
zz-=3 # Значение уменьшается на 3
zz
-10
```
### 7.3 Изучил умножение текущего значения переменной на заданную величину (\*=) или деление (\/=)
```py
zz/=2
zz
-5.0
zz*=5
zz
-25.0
a = 'bb'
a *= 2
a
'bbbb'
```
## 7.4 Изучил операции деления с округлением вниз (//=), получения остатка от деления (%=) и возведения в степень(\*\*=)
```py
a = 20
a //= 6
a
3
a %= 2
a
1
a = 2
a **= 4
a
16
```
### 7.5 Изучил множественное присваивание
```py
w=v=10 # Переменным присваивается одно и то же значение
w
10
v
10
n1,n2,n3=(11,-3,'all') #Значения переменных берутся из кортежа
n1
11
n2
-3
n3
'all'
n1,n2,n3="11", "-3", "all"
n1;n2;n3
'11'
'-3'
'all'
n1,n2,n3=[11,-3,'all']
n1;n2;n3
11
-3
'all'
n1,n2,n3={11: 3,-3:7,'all':8}
n1;n2;n3
11
-3
'all'
```
## 8 Изучил логические операции
### 8.1 Изучил Операции сравнение: равенство (\=\=), не равно (!=), меньше (<), больше (>), меньше или равно (<=), больше или равно (>=)
```py
w==v
True
w>v
False
w<v
False
w<=v
True
w>=v
True
w!=v
False
```
### 8.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
```
### 8.3 Изучил создание больших логических выражений с использованием соединительных слов: логическое «И» (and), логическое «ИЛИ» (or), логическое «НЕ» (not)
```py
a=17
b=-6
(a>=b) and ('book' in mnoz1) and not ('Pskov' in dic1)
True
(5>6) and 'cap' in mnoz1 and not(56 in dic1.values())
False
(4==2*2) and (2**4 == 16) and not(100 > 1000)
True
```
### 8.4 Изучил проверку ссылок переменных на один и тот же объект (is)
```py
w=v=10 #При таком присваивании переменные ссылаются на один и тот же объект в оперативной памяти
w is v
True
w1=['A','B']
v1=['A','B']
w1 is v1
False
w1=v1=['A','B']
w1 is v1
True
```
## 9 Изучил операции с объектами, выполняемые с помощью методов
```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']
```
### 9.1 Изучил методы для работы со строками
```py
stroka.find('пр') #Возвращает номер позиции первого вхождения указанного контекста или значение -1
5
stroka.count("с") #Подсчет числа вхождений строки “с” в stroka
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'
```
### 9.2 Изучил методы для работы со списками
```py
sp = ['a','b','c','1','5']
sp
['a', 'b', 'c', '1', '5']
spsk = sp
dir(spsk)
['__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']
spsk.pop(2)
'c'
spsk.append('c')
spsk
['a', 'b', '1', '5', 'c']
spsk.insert(2,'a')
spsk
['a', 'b', 'a', '1', '5', 'c']
spsk.count('a')
2
spsk = sp
spsk.pop(2)
'a'
spsk
['a', 'b', '1', '5', 'c']
sp.pop(1)
'b'
sp
['a', '1', '5', 'c']
```
### 9.3 Изучил применение методов кортежа
```py
kor = ('a','b','a','1','2')
kor
('a', 'b', 'a', '1', '2')
dir(kor)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
kor.index('1')
3
kor.count('a')
2
```
### 9.4 Изучил методы словарей и множеств
```py
sl = {"A":3, "B":4}
sl
{'A': 3, 'B': 4}
dir(sl)
['__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']
sl.keys()
dict_keys(['A', 'B'])
```
## 10 Завершил работу в IDLE

@ -0,0 +1,29 @@
# 1 Как расшифровывается аббревиатура IDLE? Какую роль играет эта компонента в среде программирования Python?
IDLE расшифровывается как Integrated Development and Learning Environment, что в переводе означает "Интегрированная среда для разработки и обучения". Удобный редактор кода с красивой подсветкой.
# 2 Создайте объект-словарь с 3 элементами, в которых ключами являются строки с названиями профессий, а значениями - списки с элементами: средняя зарплата по соответствующей профессии, вероятность устроиться на работу и возможность профессионального роста (логическое значение). Значения придумайте самостоятельно.
```py
dic1 = {'Программист': [500000,0.9, False], 'Уборщик': [1000000000, 1.0, True],
'Президент': [10, 0.1, True]}
print(dic1)
```
# 3 Создайте объект-строку с названием одной из профессий и напишите инструкцию, позволяющую для этого объекта определить из словаря список с ее характеристиками.
```py
st = list(dic1.keys())
#print(st)
strk = ('Характеристики профессии {prof}: {har}')
print(strk.format(prof = st[0], har = dic1[st[0]]))
```
# 4 Напишите инструкцию, создающую на основе словаря список со значениями средних зарплат по представленным в словаре профессиям.
```py
spis = list(dic1.values())
spis = sum(spis,[])
zp = spis[0::3]
print('Средние зарплаты:', zp)
```
# 5 Напишите инструкцию, вычисляющую среднюю вероятность трудоустройства по представленным в словаре профессиям.
```py
spis = list(dic1.values())
spis = sum(spis,[])
zp = spis[0::3]
print('Средние зарплаты:', zp)
```

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

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

После

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

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

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

После

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

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

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

После

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

@ -0,0 +1,20 @@
27. Определите и запомните в переменной время начала выполнения задания. Создайте объект-словарь с тремя элементами. Первый элемент – с ключом «студент» и значением – списком не менее 3-х фамилий (придумайте сами). Второй элемент – с ключом «Институт» и значением – кортежем с 4 элементами: ИВТИ, ИАЭ, ИТАЭ, ЭнМИ. Третий элемент – с ключом «Корпус» и значением – списком с элементами А,Б,Г, Д, К,М. Напишите инструкцию случайного выбора одного из значений из элемента словаря «Институт». Отобразите на экране результат в виде строки по шаблону: «Выбран институт = <значение>». Определите общее время с начала выполнения задания и отобразите его на экране.
```py
import time
import random
start_time = time.time()
dic = {
'Студент': ['Хатюхин','Шабатов','Туровец'],
'Институт': ('ИВТИ','ИАЭ','ИТАЭ','ЭнМИ'),
'Корпус': ['А','Б','Г','Д','К','М']
}
rnd_institut = random.sample(dic['Институт'],1)
print(f'Выбран институт = {rnd_institut}')
end_time = time.time()
delta = end_time - start_time
print(f'Времени прошло: {delta}')
```

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

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

После

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

@ -0,0 +1,347 @@
# Отчет по теме 4
Хатюхин Евгений, А-02-23
## 1 Запуск IDLE
## 2 Изучил стандартные встроенные функции
### 2.1 Изучил функции округления
```py
round(123.456,1)
123.5
a = round(123.456,1)
b = round(123.456, 0)
a
123.5
b
123.0
type(a);type(b)
<class 'float'>
<class 'float'>
round(123.456)
123
c = round(123.456)
type(c)
<class 'int'>
```
### 2.2 Изучил функцию создания последовательности
```py
gg=range(76,123,9)
gg
range(76, 123, 9)
list(gg)
[76, 85, 94, 103, 112, 121]
range(23)
range(0, 23)
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]
```
## 2.3 Изучил функцию zip
```py
qq = ['Khatiukhin','Shabatov','Efremov','Turovec']
qq
['Khatiukhin', 'Shabatov', 'Efremov', 'Turovec']
ff = zip(gg,qq)
ff
<zip object at 0x000001D9754CB040>
tuple(ff)
((76, 'Khatiukhin'), (85, 'Shabatov'), (94, 'Efremov'), (103, 'Turovec')) #В итоге получилась последовательность из 4 элементов, так как в qq 4 элемента, а в gg 6. Длина равна длине самого короткого списка.
ff[1]
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
ff[1]
TypeError: 'zip' object is not subscriptable
```
## 2.4 Изучил функцию eval
```py
fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156')
коэффициент усиления=40
dan
44.0
```
## 2.5 Изучил функцию exec
```py
exec(input('введите инструкции:'))
введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3)
gg
221.456
```
## 2.6 Изучил ряд полезных функций (abs, pow, max, min, sum, divmod, len, map)
- abs - выдает значение по модулю;
- len - выдает длину объекта;
- max - выдает максимальное число из списка введенных в аргумент;
- min - выдает минимальное число из списка введенных в аргумент;
- pow - при двух аргументах: возводит первый в степень второго, при наличие третьего аргумента делит получившийся результат на третий аргумент и показывает остаток;
- sum - суммирует числа;
- divmod - возвращает кортеж (a // b, a % b), где а и b соответственно первый и второй аргумент;
- map - применяет функцию из первого аргумента к каждому элементу итерируемого объекта, который указан во втором аргументе.
```py
abs(-2)
2
len('jhb')
3
max(1,2)
2
min(1,2)
1
pow(2,3
)
8
pow(2,3,4)
0
pow(2,3,3)
2
sum([1,2])
3
divmod(10,4)
(2, 2)
list(map(lambda x: x**2, [1,2,3,4,5]))
[1, 4, 9, 16, 25]
```
## 3 Изучил функции из модуля math для работы с математическими выражениями и операциями.
- sin - считает и выдает синус аргумента в радианах;
- acos - считает и выдает арккосинус аргумента в радианах;
- degrees - переводит число в радианах в градусы;
- radians - переводит число в градусах в радианы;
- exp - выдает значение числа e возведенного в степень, которая указана в аргументе;
- log - считает натуральный логарифм числа;
- log10 - считает деcятичный логарифм числа;
- sqrt - считает корень из числа в аргументе;
- ceil - округляет число вверх;
- floor - округляет число вниз;
- pi - данная функция является представлением числа пи в питоне.
```py
import math
dir(math)
['__doc__', '__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']
help(math.factorial)
Help on built-in function factorial in module math:
factorial(n, /)
Find n!.
Raise a ValueError if x is negative or non-integral.
math.factorial(5)
120
math.sin(0.5)
0.479425538604203
math.acos(0.5)
1.0471975511965979
math.degrees(0.55)
31.51267873219528
math.radians(30)
0.5235987755982988
math.exp(1)
2.718281828459045
math.log(10)
2.302585092994046
math.log10(10)
1.0
math.sqrt(25)
5.0
math.ceil(4.3)
5
math.floor(4.8)
4
math.pi
3.141592653589793
math.sin((2*math.pi)/7+math.exp(0.23))
0.8334902641414562
```
## 4 Изучил модуль cmath для работы с комплексными числами
```py
import cmath
dir(cmath)
['__doc__', '__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
```
## 5 Изучил стандартный модуль randon для работы с псевдослучайными числами
- random - равномерно распределенное случайное число;
- uniform- равномерно распределенное случайное число в диапазоне, заданном двумя аргументами;
- randint - случайные целые числа в диапазоне от значения первого аргумента до значения второго;
- gauss - нормально распределенное случайное число с средним равным первому аргументу и стандартным отклонением равным второму аргументу;
- choice - случайный выбор из совокупности указанной в аргументе;
- shuffle - случайная перестановка элементов списка в аргументе;
- sample - случайный выбор подмножества элементов из списка в первом аргументе (количество элементов равно числу, указанному во втором аргументе);
- betavariate - случайное число с бета-распределением, где альфа равна первому аргументу, а бета равна второму аргументу;
- gammavariate - случайное число с гамма-распределением, где альфа равна первому аргументу, а бета равна второму аргументу.
```py
import random
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']
help(random.seed)
Help on method seed in module random:
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
<bound method Random.seed of <random.Random object at 0x000001D9756DE570>>
random.seed()
r = random.random()
r
0.6274277749743772
u = random.uniform(1, 10)
u
8.795217202035065
rnd = random.randint(1, 10)
rnd
4
g = random.gauss(0,5)
g
-10.142595842458078
g = random.gauss(0,1)
g
-1.2762551362834256
ls = ['a','b','c','d']
ch = random.choice(ls)
ch
'a'
random.shuffle(ls)
ls
['d', 'c', 'a', 'b']
s = random.sample(ls,3)
s
['c', 'b', 'd']
b = random.betavariate(2, 5)
b
0.2662037969664268
g = random.gammavariate(2,2)
g
4.673121545436751
rnd_ls = [random.uniform(1, 10), random.gauss(5, 2), random.betavariate(2, 5), random.gammavariate(2, 2)]
rnd_ls
[4.085707425290092, 5.648252018761857, 0.05544308773047868, 5.588311173368095]
```
## 6 Изучил модуль time для работы со временем и календарями
- time - возвращает время в секундах, прошедшее с начала эпохи, за которое обычно принимается 1.01.1970г;
- gmtime - возвращает объект класса struct_time, содержащий полную информацию о текущем времени (UTC): год (tm_year), месяц (tm_mon), день tm_mday);
- localtime - для получения «местного» времени (которое стоит на компьютере);
- asctime - преобразовывает представление времени из кортежа в строку (просто отображает время в формате строки);
- ctime - преобразовывает время в секундах, прошедшего с начала эпохи, в строку;
- sleep - прерывает работу программы на заданное время в секундах;
- mktime - преобразовывает время из типа кортежа или struct_time в число секунд с начала эпохи.
```py
import time
dir(time)
['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', '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']
c1=time.time()
c1
1760259525.185354
c2=time.time()-c1
c2
12.37006688117981
dat=time.gmtime()
dat
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=8, tm_min=59, tm_sec=20, tm_wday=6, tm_yday=285, tm_isdst=0)
dat.tm_mon
10
dat.tm_year
2025
dat.tm_min
59
tm = time.localtime()
tm
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=12, tm_min=20, tm_sec=40, tm_wday=6, tm_yday=285, tm_isdst=0)
time.asctime()
'Sun Oct 12 12:21:46 2025'
time.ctime()
'Sun Oct 12 12:21:56 2025'
time.sleep(5)
ti
time.mktime(tm)
1760260840.0
time.localtime(c1)
time.struct_time(tm_year=2025, tm_mon=10, tm_mday=12, tm_hour=11, tm_min=58, tm_sec=45, tm_wday=6, tm_yday=285, tm_isdst=0)
```
## 7 Изучил графические функции
```py
import pylab
x=list(range(-3,55,4))
x
[-3, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53]
t=list(range(15))
t
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
pylab.plot(t,x) #Создание графика в оперативной памяти
[<matplotlib.lines.Line2D object at 0x000002CD3BC6EC10>]
pylab.title('Первый график')
Text(0.5, 1.0, 'Первый график')
pylab.xlabel('время')
Text(0.5, 0, 'время')
pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
pylab.show() #Отображение графика на экране
```
![[Pasted image 20251012124853.png]]
```py
X1=[12,6,8,10,7];X2=[5,7,9,11,13]
X1
[12, 6, 8, 10, 7]
X2
[5, 7, 9, 11, 13]
pylab.plot(X1)
[<matplotlib.lines.Line2D object at 0x000002CD3CD6F4D0>]
pylab.plot(X2)
[<matplotlib.lines.Line2D object at 0x000002CD3CD6F610>]
pylab.show()
```
![[Figure_1.png]]
```py
region=['Центр','Урал','Сибирь','Юг'] #Метки для диаграммы
naselen=[65,12,23,17] # Значения для диаграммы
pylab.pie(naselen,labels=region) #Создание диаграммы в памяти
([<matplotlib.patches.Wedge object at 0x000002CD3BD38050>, <matplotlib.patches.Wedge object at 0x000002CD3CE14F50>, <matplotlib.patches.Wedge object at 0x000002CD3CE15310>, <matplotlib.patches.Wedge object at 0x000002CD3CE15590>], [Text(-0.191013134139045, 1.0832885038559115, 'Центр'), Text(-0.861328292412156, -0.6841882582231001, 'Урал'), Text(0.04429273995539947, -1.0991078896938387, 'Сибирь'), Text(0.9873750693480946, -0.48486129194837324, 'Юг')])
pylab.show() #Отображение диаграммы
```
![[Ris2.png]]
```py
ls = [1, 5, 2, 3, 3, 3, 2, 4, 4, 3]
pylab.hist(ls, bins=5)
(array([1., 2., 4., 2., 1.]), array([1. , 1.8, 2.6, 3.4, 4.2, 5. ]), <BarContainer object of 5 artists>)
pylab.title('Гистограмма')
Text(0.5, 1.0, 'Гистограмма')
pylab.show()
```
![[Figure_2.png]]
```py
a = ['One', 'Two', 'Three']
b = [20, 50, 25]
pylab.bar(a, b)
<BarContainer object of 3 artists>
pylab.title("Столбиковая диаграмма")
Text(0.5, 1.0, 'Столбиковая диаграмма')
pylab.show()
```
![[Figure_3.png]]
## 8 Изучил модуль statistics для работы в сфере статистики
```py
import statistics
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']
mean = statistics.mean(ls)
mean
3
med = statistics.median(ls)
med
3.0
mode = statistics.mode(ls)
mode
3
```
## 9 Завершил работу в IDLE

@ -0,0 +1,42 @@
# Общее контрольное задание по теме 4
Хатюхин Евгений, А-02-23
## Задание
Реализовать, записать в текстовый файл и проанализировать результаты последовательности инструкций, выполняющих следующие действия:
• Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.
• Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.
• Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели.
• Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.
• Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.
• Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.
## Решение
```py
>>>divmod((round(cmath.phase(0.2+0.8j), 2))*20, 3)
(8.0, 2.6000000000000014)
>>>divmod(math.floor((round(cmath.phase(0.2+0.8j), 2))*20), 3) #Для получения остатка в целом виде и делении целых чисел, можно использовать такое выражение.
(8, 2)
>>>v = time.localtime()
>>>v
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=11, tm_hour=14, tm_min=3, tm_sec=26, tm_wday=3, tm_yday=254, tm_isdst=0)
>>>st = v.tm_hour, v.tm_min
>>>st = str(v.tm_hour)+" hour "+str(v.tm_min)+" min "
>>>st
'14 hour 3 min '
>>>ned = ["пн", "вт", "ср", "чт", "пт", "сб", "вскр"]
>>>random.sample(ned, 3)
['пн', 'вскр', 'вт']
>>>random.choice(list(range(14, 33, 3)))
20
>>>N = round(random.gauss(15, 4))
>>>N
15
>>>import string #Импортировал модуль в котором есть латинский алфавит, чтобы из него выбрать буквы. Без использования этого модуля создавать список с алфавитом нужно было бы вручную.
>>>random.sample(string.ascii_letters, N)
['M', 'J', 'X', 'H', 'R', 'D', 'V', 'U', 'c', 'g', 'l', 'k', 'm', 't', 'w']
>>>time.localtime().tm_min - v.tm_min
24
```
Загрузка…
Отмена
Сохранить