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

...

4 Коммитов

Автор SHA1 Сообщение Дата
Дмитрий Антонов
5b78df2a99 done lab work 2025-12-17 19:36:01 +03:00
Дмитрий Антонов
38387e98f7 almost done labor eight 2025-12-04 21:03:01 +03:00
Дмитрий Антонов
0cb3072d7c done 2025-11-09 00:38:36 +03:00
Дмитрий Антонов
eb4349f8a3 resolve mistakes 2025-10-26 01:08:00 +03:00
25 изменённых файлов: 1560 добавлений и 3 удалений

Просмотреть файл

@@ -1,4 +1,4 @@
# Отчет по теме 4
# Отчет по теме 5
**Антонов Дмитрий, А-03-23**
@@ -126,7 +126,7 @@ pylab.title('График синусоидального сигнала')
Text(0.5, 1.0, 'График синусоидального сигнала')
plt.show()
```
![График синусоидального сигнала](Figure_1)
![График синусоидального сигнала](Figure_1.png)
### 4. Изучение цикла while
```py
@@ -197,7 +197,7 @@ pylab.title('сигнал на выходе инерционного звена
Text(0.5, 1.0, 'сигнал на выходе инерционного звена из списка sps2')
pylab.show()
```
![сигнал на выходе инерционного звена из списка](Figure_2)
![сигнал на выходе инерционного звена из списка](Figure_2.png)
### 5. Проврека, является ли число простым с помощью циклов
```py
chislo=267 #Проверяемое число

Двоичные данные
TEMA6/fig1.png Обычный файл

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

После

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

268
TEMA6/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,268 @@
# Отчет по теме 6
**Антонов Дмитрий, А-03-23**
### 1.Начало работы, настройка текущего каталога
```py
import os
os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA6//')
```
### 2.Вывод данных на экран дисплея
#### 2.1 Эхо-вывод
```py
stroka='Автоматизированная система управления'
stroka
'Автоматизированная система управления'
```
#### 2.2 print вывод
```py
fff=234.5;gg='Значение температуры = '
print(gg, fff) #Можно вывести несколько объектов за одно обращение к функции
Значение температуры = 234.5
print(gg, fff, sep='/')
Значение температуры = /234.5
print(gg, fff,sep='/',end='***'); print('____')
Значение температуры = /234.5***____
print()
print(""" Здесь может выводиться
большой текст,
занимающий несколько строк""")
Здесь может выводиться
большой текст,
занимающий несколько строк
print("Здесь может выводиться",
"большой текст,",
"занимающий несколько строк")
Здесь может выводиться большой текст, занимающий несколько строк
```
#### 2.3 Стандартный поток вывода, модуль sys
```py
import sys
sys.stdout.write('Функция write')
Функция write13
sys.stdout.write('Функция write\n')
Функция write
14
help(sys.stdout.write)
Help on method write in module idlelib.run:
write(s) method of idlelib.run.StdOutputFile instance
Write string s to stream.
Return the number of characters written
(which is always equal to the length of the string).
```
### 3. Ввод c клавиатуры
```py
psw=input('Введите пароль:')
Введите пароль:555550
psw
'555550'
type(psw)
<class 'str'>
while True:
znach=float(input('Задайте коэф.усиления = '))
if znach<17.5 or znach>23.8:
print('Ошибка!')
else:
break
Задайте коэф.усиления = 15.4
Ошибка!
Задайте коэф.усиления = 21.6
import math
print(eval(input('введите выражение для расчета = ')))
введите выражение для расчета = math.log10(23/(1+math.exp(-3.24)))
1.34504378689765
```
### 4.Ввод-вывод при работе с файлами
#### 4.1 Функции для работы с путем к файлу
- Настройка текущей директории
```py
import os
os.getcwd()
'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6'
Antonov = os.getcwd()
print(Antonov)
/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6
os.getcwd()
'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6'
```
- Пробую методы вложенного модуля path
```py
os.listdir()
['.DS_Store', 'hm', 'report.md', '.gitkeep']
os.path.isdir('/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6')
True
os.path.isdir('python-labs/TEMA6')
False
os.path.abspath('report.md')
'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6/report.md'
file = os.path.abspath('report.md')
drkt=os.path.dirname(file)
drkt
'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6'
os.path.basename(file)
'report.md'
os.path.split(file)
('/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6', 'report.md')
os.path.exists(file)
True
os.path.exists(file+'eee')
False
```
#### 4.3 Открытие/закрытие файла, функция open/close
```py
help(open)
fp=open(file=drkt+'//zapis1.txt',mode='w')
drkt
'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA6'
dir(fp)
['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWritable', '_finalizing', 'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline', 'readlines', 'reconfigure', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'write_through', 'writelines']
fp.close()
```
#### 4.4 Запись в файл функция write
```py
sps=list(range(1,13))
fp2=open('zapis3.txt','w')
fp2.write(str(sps[:4])+'\n');fp2.write(str(sps[4:8])+'\n');fp2.write(str(sps[8:])+'\n');fp2.close()
13
13
16
```
[!Данные записанные в файл](fig1.png)
- Запись списка списков
```py
sps3=[['Иванов И.',1],['Петров П.',2],['Сидоров С.',3]]
fp3=open('zapis4.txt','w')
for i in range(len(sps3)):
stroka4=sps3[i][0]+' '+str(sps3[i][1])
fp3.write(stroka4)
11
11
12
fp3.close()
gh=open('zapis5.txt','w')
for r in sps3:
gh.write(r[0]+' '+str(r[1])+'\n')
12
12
13
gh.close()
```
#### 4.5 Чтение информации из текстового файла.
```py
sps1=[];fp=open('zapis3.txt')
for stroka in fp:
stroka=stroka.rstrip('\n')
stroka=stroka.replace('[','')
stroka=stroka.replace(']','')
sps1=sps1+stroka.split(',')
fp.close()
print(sps1)
['1', ' 2', ' 3', ' 4', '5', ' 6', ' 7', ' 8', '9', ' 10', ' 11', ' 12']
```
- Теперь элементы списков совпадают
```py
for i in range(len(sps1)):
sps1[i] = int(sps1[i])
sps1==sps
True
```
#### 4.6 Чтение информации из файла с помощью метода read
```py
fp=open('zapis3.txt');stroka1=fp.read(12);stroka2=fp.read();fp.close()
stroka1
'[1, 2, 3, 4]'
stroka2
'\n[5, 6, 7, 8]\n[9, 10, 11, 12]\n'
```
- Изучение функции readline и readlines
```py
fp=open('zapis3.txt');stroka1=fp.readline()
stroka1
'[1, 2, 3, 4]\n'
stroka2=fp.readline(3)
stroka2
'[5,'
fp.close()
fp=open('zapis3.txt');stroka1=fp.readlines()
stroka1
['[1, 2, 3, 4]\n', '[5, 6, 7, 8]\n', '[9, 10, 11, 12]\n']
fp.close()
```
#### 4.9 Ввод-вывод объектов с использованием функций из модуля pickle
```py
import pickle
mnoz1={'pen','book','pen','iPhone','table','book'}
fp=open('zapis6.mnz','wb')
pickle.dump(mnoz1,fp)
fp.close()
fp=open('zapis6.mnz','rb')
mnoz2=pickle.load(fp)
fp.close()
```
- Проверка объектов на совпадение
```py
mnoz2 == mnoz1
True
```
- Отличие от исходного в том, что сохранились только уникальные элементы
```py
mnoz2
{'table', 'book', 'iPhone', 'pen'}
mnoz1
{'table', 'book', 'iPhone', 'pen'}
```
- Запись/чтение нескольких объектов
```py
sps3
[['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]]
fp=open('zapis7.2ob','wb')
pickle.dump(mnoz1,fp);pickle.dump(sps3,fp);fp.close()
fp=open('zapis7.2ob','rb')
obj1=pickle.load(fp)
obj2=pickle.load(fp)
fp.close()
obj1,obj2
({'table', 'book', 'iPhone', 'pen'}, [['Иванов И.', 1], ['Петров П.', 2], ['Сидоров С.', 3]])
obj1==mnoz1; obj2==sps3
True
True
```
### 5. Перенаправление потоков ввода и вывода данных
- Перенаправление вывода в файл
```py
import sys
vr_out=sys.stdout
fc=open('Stroka.txt','w')
sys.stdout=fc
print('запись строки в файл')
sys.stdout=vr_out
print('запись строки на экран')
запись строки на экран
fc.close()
```
- Перенаправление вввода из файла
```py
tmp_in = sys.stdin
fd = open("Stroka.txt", "r")
sys.stdin = fd
while True:
try:
line = input ()
print(line)
except EOFError:
break
запись строки в файл
fd.close()
sys.stdin=tmp_in
```

42
TEMA6/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,42 @@
# Общее контрольное задание по теме 6
**Антонов Дмитрий, А-03-23**
1. Создаётся объект-кортеж со 125 целыми случайными числами из диапазона от 6 до 56, пред-ставленными в виде символьных строк.
```py
import random as rn
kort = tuple(str(rn.randint(6,56)) for _ in range(126))
kort
('29', '20', '18', '11', '20', '38', '8', '15', '33', '28', '30', '24', '50', '15', '26', '13', '36', '38', '10', '23', '36', '34', '16', '30', '34', '55', '28', '34', '36', '16', '6', '14', '15', '51', '7', '14', '10', '12', '54', '16', '53', '16', '39', '39', '32', '53', '43', '27', '8', '38', '8', '30', '31', '31', '22', '40', '40', '42', '18', '23', '20', '14', '48', '56', '27', '39', '10', '6', '47', '51', '26', '42', '54', '38', '49', '24', '21', '43', '40', '36', '50', '41', '43', '23', '34', '26', '21', '54', '35', '27', '10', '32', '53', '40', '39', '38', '6', '51', '37', '41', '39', '26', '46', '6', '13', '22', '26', '24', '20', '11', '34', '29', '27', '17', '23', '36', '25', '17', '25', '6', '55', '24', '52', '17', '48', '40')
```
2. Создаётся объект-список с вашей фамилией и 4 фамилиями ваших одноклассников.
```py
spis = ['Антонов','Ефимова','Турханов','Девятова','Гордиевских']
```
3. Записывается кортеж и список в бинарный файл.
```py
import pickle
fp=open('task.bn','wb')
pickle.dump(kort,fp)
pickle.dump(spis,fp)
fp.close()
fp=open('task.bn','rb')
obj1=pickle.load(fp)
obj2=pickle.load(fp)
fp.close()
obj1 == kort; obj2 == spis
True
True
obj1
('29', '20', '18', '11', '20', '38', '8', '15', '33', '28', '30', '24', '50', '15', '26', '13', '36', '38', '10', '23', '36', '34', '16', '30', '34', '55', '28', '34', '36', '16', '6', '14', '15', '51', '7', '14', '10', '12', '54', '16', '53', '16', '39', '39', '32', '53', '43', '27', '8', '38', '8', '30', '31', '31', '22', '40', '40', '42', '18', '23', '20', '14', '48', '56', '27', '39', '10', '6', '47', '51', '26', '42', '54', '38', '49', '24', '21', '43', '40', '36', '50', '41', '43', '23', '34', '26', '21', '54', '35', '27', '10', '32', '53', '40', '39', '38', '6', '51', '37', '41', '39', '26', '46', '6', '13', '22', '26', '24', '20', '11', '34', '29', '27', '17', '23', '36', '25', '17', '25', '6', '55', '24', '52', '17', '48', '40')
obj2
['Антонов', 'Ефимова', 'Турханов', 'Девятова', 'Гордиевских']
if(obj1 == kort and obj2 == spis):
print("Объекты схожи")
Объекты схожи
```
4. Разделяется кортеж на совокупности по 5 чисел в каждой и они записываются в виде отдельных списков со своими именами.
```py
vocab = {}
for i in range(0,len(kort),5):
vocab['группа №'+str(i//5)] = list(kort[i:i+5])
```

48
TEMA6/test.md Обычный файл
Просмотреть файл

@@ -0,0 +1,48 @@
# Индивидуальное контрольное задание по теме 6
**Антонов Дмитрий, А-03-23**
## Задание M2_8
1) Создайте множество с 40 элементами - случайными числами, равномерно распределенными на интервале от -20 до +10. Числа должны быть округлены до двух знаков после точки.
```py
import os
os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA6//')
import random as rn
my_set = set(round(rn.uniform(-20,10),2) for _ in range(40))
my_set
{0.41, 2.22, 3.89, 4.77, 5.04, 6.94, 7.43, 8.16, 9.13, 9.48, 9.85, 6.01, 9.2, -3.82, -19.36, -18.72, -15.84, -9.36, -9.5, -8.1, -4.59, -19.23, -4.49, -4.15, -16.02, -4.74, -16.5, -13.96, -12.95, -11.92, -10.71, -9.89, -8.66, -7.45, -6.18, -5.86, -4.62, -3.52, -2.95, -1.4}
type(my_set)
<class 'set'>
```
2) Запросите у пользователя и введите имя бинарного файла для сохранения множества. Если во введенном имени есть пробелы, замените их на пустые строки.
```py
name = input("Введите имя бинарного файла для сохранения множества: ").replace(" ","")
Введите имя бинарного файла для сохранения множества: NA ME
name
'NAME'
```
3) Запишите множество в бинарный файл с указанным именем.
```py
import pickle
fl = open(name+"bn",'wb')
pickle.dump(my_set,fl)
fl.close()
```
4) Удалите из памяти созданное множество.
```py
del(my_set)
```
5) Прочитайте множество из файла и рассчитайте по его элементам среднее значение. Отобразите его на экране по шаблону: " По <число элементов> среднее = <рассчитанное значение>". Выводимое среднее округлить до двух знаков после точки.
```py
fl = open(name+"bn",'rb')
file_set = pickle.load(fl)
file_set
{0.41, 2.22, 3.89, 4.77, 5.04, 6.94, 7.43, 8.16, 9.13, 9.48, 9.85, 6.01, 9.2, -7.45, -4.62, -3.52, -9.36, -9.89, -8.66, -6.18, -4.49, -19.36, -18.72, -19.23, -4.15, -15.84, -16.02, -4.74, -16.5, -13.96, -12.95, -9.5, -8.1, -11.92, -10.71, -5.86, -4.59, -3.82, -2.95, -1.4}
import numpy
mn = numpy.mean(list(file_set))
mn
np.float64(-4.2989999999999995)
print("По {} среднее = {} ".format(len(file_set),round(mn,2)))
По 40 среднее = -4.30
```

2
TEMA8/MM0.py Обычный файл
Просмотреть файл

@@ -0,0 +1,2 @@
import MM2
print('y=',MM2.vyhod)

22
TEMA8/MM1.py Обычный файл
Просмотреть файл

@@ -0,0 +1,22 @@
def realdvig(xtt,kk1,TT,yti1,ytin1):
#Модель реального двигателя
yp=kk1*xtt #усилитель
yti1=yp+yti1 #Интегратор
ytin1=(yti1+TT*ytin1)/(TT+1)
return [yti1,ytin1]
def tahogen(xtt,kk2,yti2):
#Модель тахогенератора
yp=kk2*xtt #усилитель
yti2=yp+yti2 #интегратор
return yti2
def nechus(xtt,gran):
#зона нечувствит
if xtt<gran and xtt>(-gran):
ytt=0
elif xtt>=gran:
ytt=xtt-gran
elif xtt<=(-gran):
ytt=xtt+gran
return ytt

23
TEMA8/MM2.py Обычный файл
Просмотреть файл

@@ -0,0 +1,23 @@
znach=input('k1,T,k2,Xm,A,F,N=').split(',')
k1=float(znach[0])
T=float(znach[1])
k2=float(znach[2])
Xm=float(znach[3])
A=float(znach[4])
F=float(znach[5])
N=int(znach[6])
import math
vhod=[]
for i in range(N):
vhod.append(A*math.sin((2*i*math.pi)/F))
import MM1 as mod
yi1=0;yin1=0;yi2=0
vyhod=[]
for xt in vhod:
xt1=xt-yi2 #отрицательная обратная связь
[yi1,yin1]=mod.realdvig(xt1,k1,T,yi1,yin1)
yi2=mod.tahogen(yin1,k2,yi2)
yt=mod.nechus(yin1,Xm)
vyhod.append(yt)

8
TEMA8/module1.py Обычный файл
Просмотреть файл

@@ -0,0 +1,8 @@
def read_func(name):
ans = []
fp = open(name,'r')
for line in fp:
for num in line.strip().split():
ans.append(float(num))
fp.close()
return ans

15
TEMA8/module2.py Обычный файл
Просмотреть файл

@@ -0,0 +1,15 @@
import math as m
def count_corr(lst1,lst2):
n = min(len(lst1),len(lst2))
sred1 = sum(lst1[:n+1])/(n)
sred2 = sum(lst2[:n+1])/(n)
down1 = 0;down2 = 0;up = 0
for i in range(n):
down1 += ((lst1[i] - sred1)**2)
down2 += ((lst2[i] - sred2)**2)
up += (lst1[i] - sred1)*(lst2[i] - sred2)
print(up,m.sqrt(down1*down2))
return up / m.sqrt(down1*down2)

11
TEMA8/module3.py Обычный файл
Просмотреть файл

@@ -0,0 +1,11 @@
import module1 as m1,module2 as m2
def brain():
name1 = input("Введите имя первого текстового файла ")
name2 = input("Введите имя второго текстового файла ")
file1 = m1.read_func(name1)
file2 = m1.read_func(name2)
answer = m2.count_corr(file1,file2)
print(answer)
print("Коэффициент корреляции = {}".format(round(answer,3)))

597
TEMA8/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,597 @@
# Отчет по теме 8
**Антонов Дмитрий, А-03-23**
### 1.Начало работы, настройка текущего каталога
```py
import os;os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA8//')
os.getcwd()
'/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8'
import sys,importlib
```
### 2.Запуск модуля из командной строки
```py
import Mod1
Mod1:Введите значение = 5
Mod1:Значение perm1= 5
```
#### 2.1 Проверил класс модуля и получил список атрибутов
```py
dir()
['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'importlib', 'os', 'sys']
type(Mod1)
<class 'module'>
dir(Mod1)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'perm1']
```
#### 2.2 Обращение к переменной внутри модуля
```py
Mod1.perm1
'5'
import Mod1
```
- Ничего не произошло после импорт, так как модуль уже импортирован
```py
importlib.reload(Mod1)
Mod1:Введите значение = 3
Mod1:Значение perm1= 3
<module 'Mod1' from '/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod1.py'>
Mod1.perm1
'3'
```
#### 2.2 Проверил какие модули уже импортированы
```py
print(sorted(sys.modules.keys()))
['Mod1', '__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', '_codecs', '_collections', '_collections_abc', '_colorize', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_lzma', '_opcode', '_opcode_metadata', '_operator', '_osx_support', '_pickle', '_pyrepl', '_pyrepl.pager', '_queue', '_random', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_suggestions', '_sysconfigdata__darwin_darwin', '_thread', '_tkinter', '_tokenize', '_typing', '_warnings', '_weakref', '_weakrefset', 'abc', 'array', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._abc', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posix', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 're._casefix', 're._compiler', 're._constants', 're._parser', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'site', 'socket', 'socketserver', 'stat', 'string', 'struct', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib']
```
- Удаление импортированного модуля
```py
sys.modules.pop('Mod1')
<module 'Mod1' from '/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod1.py'>
print(sorted(sys.modules.keys()))
['__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', '_codecs', '_collections', '_collections_abc', '_colorize', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_lzma', '_opcode', '_opcode_metadata', '_operator', '_osx_support', '_pickle', '_pyrepl', '_pyrepl.pager', '_queue', '_random', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_suggestions', '_sysconfigdata__darwin_darwin', '_thread', '_tkinter', '_tokenize', '_typing', '_warnings', '_weakref', '_weakrefset', 'abc', 'array', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._abc', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posix', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 're._casefix', 're._compiler', 're._constants', 're._parser', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'site', 'socket', 'socketserver', 'stat', 'string', 'struct', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib']
```
- Повторный запуск модуля
```py
import Mod1
Mod1:Введите значение = 5
Mod1:Значение perm1= 5
print(sorted(sys.modules.keys()))
['Mod1', '__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', '_codecs', '_collections', '_collections_abc', '_colorize', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_lzma', '_opcode', '_opcode_metadata', '_operator', '_osx_support', '_pickle', '_pyrepl', '_pyrepl.pager', '_queue', '_random', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_suggestions', '_sysconfigdata__darwin_darwin', '_thread', '_tkinter', '_tokenize', '_typing', '_warnings', '_weakref', '_weakrefset', 'abc', 'array', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._abc', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posix', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 're._casefix', 're._compiler', 're._constants', 're._parser', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'site', 'socket', 'socketserver', 'stat', 'string', 'struct', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib']
sys.modules.pop('Mod1')
<module 'Mod1' from '/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod1.py'>
```
#### 2.3 Запуск на выполнение с помощью exec()
```py
exec(open('Mod1.py').read())
Mod1:Введите значение = 9
Mod1:Значение perm1= 9
exec(open('Mod1.py').read())
Mod1:Введите значение = 5
Mod1:Значение perm1= 5
dir()
['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'importlib', 'os', 'perm1', 'sys']
perm1
'5'
exec(open('Mod1.py').read())
Mod1:Введите значение = 8
Mod1:Значение perm1= 8
perm1
'8'
from Mod1 import perm1
Mod1:Введите значение = 78
Mod1:Значение perm1= 78
dir()
['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'importlib', 'os', 'perm1', 'sys']
print(sorted(sys.modules.keys()))
['Mod1', '__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', '_codecs', '_collections', '_collections_abc', '_colorize', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_lzma', '_opcode', '_opcode_metadata', '_operator', '_osx_support', '_pickle', '_pyrepl', '_pyrepl.pager', '_queue', '_random', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_suggestions', '_sysconfigdata__darwin_darwin', '_thread', '_tkinter', '_tokenize', '_typing', '_warnings', '_weakref', '_weakrefset', 'abc', 'array', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._abc', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posix', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 're._casefix', 're._compiler', 're._constants', 're._parser', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'site', 'socket', 'socketserver', 'stat', 'string', 'struct', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib']
perm1
'78'
from Mod2 import beta
dir()
['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'beta', 'importlib', 'os', 'perm1', 'sys']
g=beta(2)
****BETA****
dir()
['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'beta', 'g', 'importlib', 'os', 'perm1', 'sys']
sys.modules.pop('Mod1')
<module 'Mod1' from '/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod1.py'>
dir()
['Mod1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'beta', 'g', 'importlib', 'os', 'perm1', 'sys']
del(Mod1)
from Mod1 import perm1
Mod1:Введите значение = 5
Mod1:Значение perm1= 5
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'beta', 'g', 'importlib', 'os', 'perm1', 'sys']
print(sorted(sys.modules.keys()))
['Mod1', 'Mod2', '__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', '_codecs', '_collections', '_collections_abc', '_colorize', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_lzma', '_opcode', '_opcode_metadata', '_operator', '_osx_support', '_pickle', '_pyrepl', '_pyrepl.pager', '_queue', '_random', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_suggestions', '_sysconfigdata__darwin_darwin', '_thread', '_tkinter', '_tokenize', '_typing', '_warnings', '_weakref', '_weakrefset', 'abc', 'array', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._abc', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posix', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 're._casefix', 're._compiler', 're._constants', 're._parser', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'site', 'socket', 'socketserver', 'stat', 'string', 'struct', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib']
perm1
'5'
from Mod2 import beta
g=beta(2)
****BETA****
g
535.4916555247646
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'beta', 'g', 'importlib', 'os', 'perm1', 'sys']
print(sorted(sys.modules.keys()))
['Mod1', 'Mod2', '__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', '_codecs', '_collections', '_collections_abc', '_colorize', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_lzma', '_opcode', '_opcode_metadata', '_operator', '_osx_support', '_pickle', '_pyrepl', '_pyrepl.pager', '_queue', '_random', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_suggestions', '_sysconfigdata__darwin_darwin', '_thread', '_tkinter', '_tokenize', '_typing', '_warnings', '_weakref', '_weakrefset', 'abc', 'array', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._abc', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posix', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 're._casefix', 're._compiler', 're._constants', 're._parser', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'site', 'socket', 'socketserver', 'stat', 'string', 'struct', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib']
alpha()
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
alpha()
NameError: name 'alpha' is not defined
from Mod2 import alpha as al
al()
****ALPHA****
Значение t=9
'9'
del al,beta
from Mod2 import alpha as al, beta as bt
del al,bt
dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'g', 'importlib', 'os', 'perm1', 'sys']
from Mod2 import *
tt=alpha()
****ALPHA****
Значение t=0.12
uu=beta(float(tt))
****BETA****
print(uu)
1.4578913609506803
sys.modules.pop('Mod1')
<module 'Mod1' from '/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod1.py'>
sys.modules.pop('Mod2')
<module 'Mod2' from '/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py'>
print(sorted(sys.modules.keys()))
['__future__', '__main__', '_abc', '_ast', '_bisect', '_bz2', '_codecs', '_collections', '_collections_abc', '_colorize', '_compat_pickle', '_compression', '_datetime', '_frozen_importlib', '_frozen_importlib_external', '_functools', '_heapq', '_imp', '_io', '_lzma', '_opcode', '_opcode_metadata', '_operator', '_osx_support', '_pickle', '_pyrepl', '_pyrepl.pager', '_queue', '_random', '_signal', '_sitebuiltins', '_socket', '_sre', '_stat', '_string', '_struct', '_suggestions', '_sysconfigdata__darwin_darwin', '_thread', '_tkinter', '_tokenize', '_typing', '_warnings', '_weakref', '_weakrefset', 'abc', 'array', 'ast', 'bdb', 'binascii', 'bisect', 'builtins', 'bz2', 'codecs', 'collections', 'collections.abc', 'configparser', 'contextlib', 'copyreg', 'datetime', 'dis', 'encodings', 'encodings.aliases', 'encodings.utf_8', 'enum', 'errno', 'fnmatch', 'functools', 'genericpath', 'heapq', 'idlelib', 'idlelib.autocomplete', 'idlelib.autocomplete_w', 'idlelib.calltip', 'idlelib.calltip_w', 'idlelib.config', 'idlelib.debugger', 'idlelib.debugger_r', 'idlelib.debugobj', 'idlelib.debugobj_r', 'idlelib.hyperparser', 'idlelib.iomenu', 'idlelib.macosx', 'idlelib.multicall', 'idlelib.pyparse', 'idlelib.rpc', 'idlelib.run', 'idlelib.scrolledlist', 'idlelib.stackviewer', 'idlelib.tooltip', 'idlelib.tree', 'idlelib.util', 'idlelib.window', 'idlelib.zoomheight', 'importlib', 'importlib._abc', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib.machinery', 'importlib.util', 'inspect', 'io', 'ipaddress', 'itertools', 'keyword', 'linecache', 'lzma', 'marshal', 'math', 'opcode', 'operator', 'os', 'os.path', 'pickle', 'pkgutil', 'platform', 'plistlib', 'posix', 'posixpath', 'pydoc', 'pyexpat', 'pyexpat.errors', 'pyexpat.model', 'queue', 'random', 're', 're._casefix', 're._compiler', 're._constants', 're._parser', 'reprlib', 'select', 'selectors', 'shlex', 'shutil', 'site', 'socket', 'socketserver', 'stat', 'string', 'struct', 'sys', 'sysconfig', 'tempfile', 'textwrap', 'threading', 'time', 'tkinter', 'tkinter.constants', 'token', 'tokenize', 'traceback', 'types', 'typing', 'urllib', 'urllib.parse', 'warnings', 'weakref', 'xml', 'xml.parsers', 'xml.parsers.expat', 'xml.parsers.expat.errors', 'xml.parsers.expat.model', 'zipimport', 'zlib']
import Mod0
Mod1:Введите значение = 5
Mod1:Значение perm1= 5
perm1= 5
****ALPHA****
Значение t=10
tt= 10
****BETA****
qq= 44031505860631.98
dir()
['Mod0', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', '__warningregistry__', 'alpha', 'beta', 'g', 'importlib', 'os', 'perm1', 'sys', 'tt', 'uu']
Mod0.tt;Mod0.qq;Mod0.Mod1.perm1
'10'
44031505860631.98
'5'
R
Traceback (most recent call last):
File "<pyshell#57>", line 1, in <module>
R
NameError: name 'R' is not defined
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/MM0.py =====
k1,T,k2,Xm,A,F,N=2,3,4,1,6,4,3
Traceback (most recent call last):
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/MM0.py", line 1, in <module>
import MM2
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/MM2.py", line 15, in <module>
import MM1 as mod
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/MM1.py", line 6
return [yti1,ytin1]
^
IndentationError: unindent does not match any outer indentation level
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/MM0.py =====
k1,T,k2,Xm,A,F,N=2,3,4,1,6,4,3
y= [0, 2.0, 0]
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/MM0.py =====
k1,T,k2,Xm,A,F,N=5,5,5,2,3,4,8
y= [0, 0.5, -3.833333333333333, 0, 19.990740740740744, -25.978395061728403, -22.99485596707819, 121.76114540466394]
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py ====
main()
Traceback (most recent call last):
File "<pyshell#58>", line 1, in <module>
main()
NameError: name 'main' is not defined. Did you mean: 'min'?
import os;os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA8//')
import os,sys,imp
Traceback (most recent call last):
File "<pyshell#60>", line 1, in <module>
import os,sys,imp
ModuleNotFoundError: No module named 'imp'
import os,sys,impimport os,sys,importlib
SyntaxError: invalid syntax
import sys,importlib
import Mod2
Mod2.beta
<function beta at 0x105a9d300>
Mod2.beta()
Traceback (most recent call last):
File "<pyshell#65>", line 1, in <module>
Mod2.beta()
TypeError: beta() missing 1 required positional argument: 'q'
Mod2.beta(5)
****BETA****
****ALPHA****
Значение t=9
обращание к альфа 9
6635623.99934113
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=5
'5'
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py ====
import os;os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA8//')
import sys,importlib
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=5
****BETA****
Traceback (most recent call last):
File "<pyshell#72>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 13, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 6, in beta
expi=q*math.pi
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=5
****BETA****
Traceback (most recent call last):
File "<pyshell#74>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 13, in alpha
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 6, in beta
TypeError: can't multiply sequence by non-int of type 'float'
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py ====
import os;os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA8//')
import sys,importlib
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=9
****BETA****
Traceback (most recent call last):
File "<pyshell#78>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
expi=q*math.pi
TypeError: can't multiply sequence by non-int of type 'float'
dir()
['Mod2', '__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'alpha', 'beta', 'importlib', 'os', 'sys']
del(alpha,beta,Mod2)
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=
****BETA****
Traceback (most recent call last):
File "<pyshell#82>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
expi=q*math.pi
TypeError: can't multiply sequence by non-int of type 'float'
del(alpha,beta,Mod2)
Traceback (most recent call last):
File "<pyshell#83>", line 1, in <module>
del(alpha,beta,Mod2)
NameError: name 'alpha' is not defined
dir()
['Mod2', '__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'importlib', 'os', 'sys']
import Mod2
Mod2.beta()
Traceback (most recent call last):
File "<pyshell#86>", line 1, in <module>
Mod2.beta()
TypeError: beta() missing 1 required positional argument: 'q'
Mod2.beta(2)
****BETA****
535.4916555247646
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=3
****BETA****
Traceback (most recent call last):
File "<pyshell#89>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
import math
TypeError: can't multiply sequence by non-int of type 'float'
dir(Mod2,alpha,beta)
Traceback (most recent call last):
File "<pyshell#90>", line 1, in <module>
dir(Mod2,alpha,beta)
NameError: name 'alpha' is not defined
del(Mod2,alpha,beta)
Traceback (most recent call last):
File "<pyshell#91>", line 1, in <module>
del(Mod2,alpha,beta)
NameError: name 'alpha' is not defined
dir()
['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'importlib', 'os', 'sys']
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=5
****BETA****
Traceback (most recent call last):
File "<pyshell#94>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
expi=float(q)*math.pi
TypeError: can't multiply sequence by non-int of type 'float'
import
SyntaxError: Expected one or more names after 'import'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=5
****BETA****
Traceback (most recent call last):
File "<pyshell#97>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print("q",q)
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=5
****BETA****
Traceback (most recent call last):
File "<pyshell#99>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print("q",type(q))
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=5
****BETA****
Traceback (most recent call last):
File "<pyshell#101>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(t))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=8
****BETA****
Traceback (most recent call last):
File "<pyshell#103>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(float(t)))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=8.8
****BETA****
Traceback (most recent call last):
File "<pyshell#105>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(float(t)))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=9
****BETA****
Traceback (most recent call last):
File "<pyshell#107>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(int(t)))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
del(Mod2,alpha,beta)
Traceback (most recent call last):
File "<pyshell#108>", line 1, in <module>
del(Mod2,alpha,beta)
NameError: name 'alpha' is not defined
dir()
['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'importlib', 'os', 'sys']
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=9
****BETA****
Traceback (most recent call last):
File "<pyshell#111>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта",beta(int(t)))
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=9
****BETA****
Traceback (most recent call last):
File "<pyshell#113>", line 1, in <module>
Mod2.alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта")
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
import math
TypeError: can't multiply sequence by non-int of type 'float'
tt=alpha()
Traceback (most recent call last):
File "<pyshell#114>", line 1, in <module>
tt=alpha()
NameError: name 'alpha' is not defined
from Mod2 import *
tt=alpha()
****ALPHA****
Значение t=9
****BETA****
Traceback (most recent call last):
File "<pyshell#116>", line 1, in <module>
tt=alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта")
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
import math
TypeError: can't multiply sequence by non-int of type 'float'
from Mod2 import *
tt=alpha()
****ALPHA****
Значение t=0
****BETA****
Traceback (most recent call last):
File "<pyshell#118>", line 1, in <module>
tt=alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта")
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
del(Mod2,alpha,beta)
from Mod2 import *
tt=alpha()
****ALPHA****
Значение t=9
****BETA****
Traceback (most recent call last):
File "<pyshell#121>", line 1, in <module>
tt=alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта")
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
del(Mod2,alpha,beta)
Traceback (most recent call last):
File "<pyshell#122>", line 1, in <module>
del(Mod2,alpha,beta)
NameError: name 'Mod2' is not defined
dir()
['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'alpha', 'beta', 'importlib', 'os', 'sys']
del(alpha,beta)
dir()
['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'importlib', 'os', 'sys']
from Mod2 import *
dir()
['__annotations__', '__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'alpha', 'beta', 'importlib', 'os', 'sys']
alpha.__doc__
print(alpha.__doc__)
None
alpha()
****ALPHA****
Значение t=9
****BETA****
Traceback (most recent call last):
File "<pyshell#130>", line 1, in <module>
alpha()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 4, in alpha
print("обращание к бетта")
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod2.py", line 10, in beta
print(type(q))
TypeError: can't multiply sequence by non-int of type 'float'
import Mod2
Mod2.alpha()
****ALPHA****
Значение t=9
****BETA****
<class 'float'>
обращание к бетта 1902773895292.1592
'9'
import Mod2
Mod2.beta(9)
****BETA****
<class 'int'>
****ALPHA****
Значение t=9
обращание к альфа 9
1902773895292.1592
import Mod0
Mod1:Введите значение = 9
Mod1:Значение perm1= 9
perm1= 9
****ALPHA****
Значение t=8
tt= 8
****BETA****
<class 'float'>
qq= 82226315585.59491
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
import Mod0
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA8/Mod0.py", line 10, in <module>
print(t,expi)
NameE
import Mod0
Mod1:Введите значение = 5
Mod1:Значение perm1= 5
perm1= 5
perm1= 15
****ALPHA****
Значение t=6
tt= 6
****BETA****
<class 'float'>
qq= 153552935.39544657
dir()
['Mod0', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'importlib', 'os', 'sys']
perm1
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
perm1
NameError: name 'perm1' is not defined
Mod0.perm1 * 2
30
tt * 2
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
tt * 2
NameError: name 'tt' is not defined
qq*2
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
qq*2
NameError: name 'qq' is not defined
Mod0.qq * 2
307105870.79089314
Mod0.tt * 2
'66'
```

12
TEMA8/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,12 @@
# Общее контрольное задание по теме 8
**Антонов Дмитрий, А-03-23**
```py
import module3
module3.brain()
Введите имя первого текстового файла testfile1.txt
Введите имя второго текстового файла testfile2.txt
-192.75 397.74528595572315
-0.4846066233993201
Коэффициент корреляции = -0.485
```

2
TEMA8/testfile1.txt Обычный файл
Просмотреть файл

@@ -0,0 +1,2 @@
1 2 3
5 6 8 1212

2
TEMA8/testfile2.txt Обычный файл
Просмотреть файл

@@ -0,0 +1,2 @@
112 3 4
2

18
TEMA9/Mod3.py Обычный файл
Просмотреть файл

@@ -0,0 +1,18 @@
class Class1: #Объявление класса Class1 в модуле
def zad_zn(self,znach): # 1 Метод класса
self.data=znach # self - ссылка на экземпляр класса Class1
def otobrazh(self): # 2 Метод класса
print(self.data)#Отображение данных экземпляра
class Class2(Class1): #Class2 - наследник класса Class1
def otobrazh(self): # Метод класса Class2
print('значение=',self.data)#Отображение данных экземпляра
def otobrazh(objekt): #Объявление самостоятельной функции
print('значение объекта=',objekt)
class Class3(Class2): #Наследник класса Class2, а через него – и класса Class1
def __init__(self,znach): #Конструктор-вызывается при создании нового экземпляра класса
self.data=znach
def __add__(self,drug_zn): #Вызывается, когда экземпляр участвует в операции «+»
return Class3(self.data+drug_zn)
def zad_dr_zn(self,povtor): #А это - обычный метод
self.data*=povtor

21
TEMA9/SAU.py Обычный файл
Просмотреть файл

@@ -0,0 +1,21 @@
class SAU:
def __init__(self,zn_param):
self.param=zn_param
self.ypr=[0,0]
def zdn_zn(self,upr):
self.x=upr
def model(self):
def inerz(x,T,yy):
return (x+T*yy)/(T+1)
y0=self.x-self.ypr[1]*self.param[3] #Обр.связь с усилителем 2
y1=self.param[0]*y0 #Усилитель1
y2=inerz(y1,self.param[1],self.ypr[0]) #Инерционное звено1
y3=inerz(y2,self.param[2],self.ypr[1]) #Инерционное звено2
self.ypr[0]=y2
self.ypr[1]=y3
def otobraz(self):
print('y=',self.ypr[1])

30
TEMA9/control.py Обычный файл
Просмотреть файл

@@ -0,0 +1,30 @@
class Departament:
def __init__(self,fio,otdel,dolzhnost,oklad):
self.fio = fio
self.otdel = otdel
self.dolzhnost = dolzhnost
self.oklad = oklad
self.__prm = list()
def increase(self,put):
self.oklad += put
def new_work(self,new_otdel):
self.otdel = new_otdel
def new_dolzhnost(self,new_dolzh):
self.dolzhnost = new_dolzh
def all_info(self):
print(self.fio,self.otdel,self.dolzhnost,self.oklad,self.prop)
def getter(self):
return self.__prm
def setter(self,new):
self.__prm.append(new)
prop = property(getter,setter)

Двоичные данные
TEMA9/fig.png Обычный файл

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

После

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

Двоичные данные
TEMA9/k002.png Обычный файл

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

После

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

Двоичные данные
TEMA9/k20.png Обычный файл

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

После

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

Двоичные данные
TEMA9/k5.png Обычный файл

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

После

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

352
TEMA9/report.md Обычный файл
Просмотреть файл

@@ -0,0 +1,352 @@
# Отчет по теме 9
**Антонов Дмитрий, А-03-23**
### 1.Начало работы, настройка текущего каталога
```py
import os
os.chdir('//Users//dmitrijantonov//Desktop//POAC//python-labs//TEMA9//')
```
### 2.Создание классов и их наследников
#### 2.1 Создание класса
```py
class Class1: #Объявление класса
def zad_zn(self,znach): #Метод 1 класса1 – задание значения data
self.data=znach # self - ссылка на экземпляр класса
def otobrazh(self): # Метод 2 класса1
print(self.data)#Отображение данных экземпляра класса
z1=Class1() #Создаём 1-й экземпляр класса
dir()
['Class1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os', 'z1']
```
- Вызов методов у экзмепляров класса
```py
z2=Class1()
z1.zad_zn('экз.класса 1')
z2.zad_zn(-632.453)
z1.otobrazh()
экз.класса 1
z2.otobrazh()
-632.453
z1.data='Новое значение атрибута у экз.1';z1.otobrazh()
Новое значение атрибута у экз.1
```
#### 2.2 Создание класса-наследника
```py
class Class2(Class1): #Class2 - наследник класса Class1
def otobrazh(self): # Метод класса Class2 – переопределяет метод родителя
print('значение=',self.data)#Отображение данных экземпляра
z3=Class2()
dir(z3)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'otobrazh', 'zad_zn']
z3.zad_zn('Совсем новое')
z3.otobrazh()
значение= Совсем новое
z1.otobrazh()
```
- Родитлеский класс не изменил значение поля класса
```py
Новое значение атрибута у экз.1
del z1,z2,z3
```
### 3. Использование классов, содержащихся в модулях
```py
from Mod3 import Class1 #Частичный импорт содержимого модуля
z4=Class1()
z4.otobrazh()
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
z4.otobrazh()
File "/Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA9/Mod3.py", line 5, in otobrazh
print(self.data)#Отображение данных экземпляра
AttributeError: 'Class1' object has no attribute 'data'
```
- Нет  data, ничего не задавали -> нечего вывести
```py
z4.zad_zn(2)
z4.otobrazh()
2
from Mod3 import Class1
z4=Class1()
z4.data='значение данного data у экз.4'
z4.otobrazh()
значение данного data у экз.4
del z4
dir()
['Class1', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
```
- Меняем значение у класса, значение экземпляра - неизменно
```py
import Mod3
z4=Mod3.Class2()
z4.zad_zn('Класс из модуля')
z4.otobrazh()
значение= Класс из модуля
Mod3.otobrazh('Объект')
значение объекта= Объект
z4.otobrazh()
значение= Класс из модуля
```
### 4.Использование специальных методов
```py
import Mod3
z5=Mod3.Class3('abc') #При создании экземпляра срабатывает конструктор __init__
z5.otobrazh()
значение= abc
```
- При операции выполнении+ срабатывает метод _add_
```py
z6=z5+'def'
z6.otobrazh()
значение= abcdef
z6.zad_dr_zn(3)
type(z6)
<class 'Mod3.Class3'>
z6.otobrazh()
значение= abcdefabcdefabcdef
```
### 5.Присоединение атрибутов к классу
```py
dir(Class3)
['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'otobrazh', 'zad_dr_zn', 'zad_zn']
```
- Создание нового отрибута
```py
Class3.fio='Иванов И.И.'
dir(Class3)
['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn']
z7=Class3(123)
```
- Отличие в data
```py
dir(z7)==dir(Class3)
False
z7.fio
'Иванов И.И.'
z7.otobrazh()
значение= 123
dir(z7)
['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'data', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn']
dir(Class3)
['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn']
```
- Значение не изменилось у родительского класса
```py
z7.fio ='fff'
z7.fio
'fff'
Class3.fio
'Иванов И.И.'
z7.rozden='1987'
```
- Атрибут rozden не появится у родительского класса
```py
dir(z7)
['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'data', 'fio', 'otobrazh', 'rozden', 'zad_dr_zn', 'zad_zn']
dir(Class3)
['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'fio', 'otobrazh', 'zad_dr_zn', 'zad_zn']
```
### 6.Выявление родительских классов
- Выявление родительских классов с помощью атрибута _bases_
```py
from Mod3 import Class1,Class2,Class3
dir()
['Class1', 'Class2', 'Class3', 'Mod3', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'os']
Class3.__bases__
(<class 'Mod3.Class2'>,)
Class2.__bases__
(<class 'Mod3.Class1'>,)
Class1.__bases__
(<class 'object'>,)
```
- Выявление родительских классов (вся цепочка) с помощью атрибута _mro_
```py
Class3.__mro__
(<class 'Mod3.Class3'>, <class 'Mod3.Class2'>, <class 'Mod3.Class1'>, <class 'object'>)
ZeroDivisionError.__mro__
(<class 'ZeroDivisionError'>, <class 'ArithmeticError'>, <class 'Exception'>, <class 'BaseException'>, <class 'object'>)
```
### 7. Создание свойства класса
```py
class Class4:
def __init__(sam,znach):
sam.__prm=znach
def chten(sam):
return sam.__prm
def zapis(sam,znch):
sam.__prm=znch
def stiran(sam):
del sam.__prm
svojstvo=property(chten,zapis,stiran)
```
- Инициализация свойства (getter setter)
```py
exempl=Class4(12)
exempl.svojstvo
12
exempl.svojstvo=45
exempl.svojstvo
45
print(exempl.svojstvo)
45
del exempl.svojstvo
print(exempl.svojstvo)
```
- Свойство удалено у экземпляра, невозможно обратиться. У класса свойство остается
```py
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
print(exempl.svojstvo)
File "<pyshell#13>", line 5, in chten
return sam.__prm
AttributeError: 'Class4' object has no attribute '_Class4__prm'
newexp=Class4(12)
newexp.svojstvo
12
```
- Вывод: Удаляется только атрибут __prm, а не весь экземпляр. Ошибка возникает из-за попытки чтения несуществующего атрибута. Нужно добавить проверку в методы класса.
### 8. Представления в виде класса модели системы автоматического регулирова-ния (САР), состоящей из последовательного соединения усилителя и двух инерционных звеньев, охваченных отрицательной обратной связью с усилителем.
```py
class SAU:
def __init__(self,zn_param):
self.param=zn_param
self.ypr=[0,0]
def zdn_zn(self,upr):
self.x=upr
def model(self):
def inerz(x,T,yy):
return (x+T*yy)/(T+1)
y0=self.x-self.ypr[1]*self.param[3] #Обр.связь с усилителем 2
y1=self.param[0]*y0 #Усилитель1
y2=inerz(y1,self.param[1],self.ypr[0]) #Инерционное звено1
y3=inerz(y2,self.param[2],self.ypr[1]) #Инерционное звено2
self.ypr[0]=y2
self.ypr[1]=y3
def otobraz(self):
print('y=',self.ypr[1])
```
- Код тестирования
```py
###main_SAU
prm=[2.5,4,1.3,0.8] #Параметры модели: коэф.усиления, 2 пост.времени, обратная связь
from SAU import *
xx=[0]+[1]*20 #Входной сигнал – «ступенька»
SAUe=SAU(prm) # Создаём экземпляр класса
yt=[]
for xt in xx: # Прохождение входного сигнала
SAUe.zdn_zn(xt)
SAUe.model()
SAUe.otobraz()
yt.append(SAUe.ypr[1])
import pylab
pylab.plot(yt)
pylab.show()
```
- Запуск модуль тестирования
```py
import test
y= 0.0
y= 0.2173913043478261
y= 0.4763705103969754
y= 0.686594887811293
y= 0.8199324616478645
y= 0.8837201137353929
y= 0.8994188484874774
y= 0.8892777072047301
y= 0.870097963179993
y= 0.8518346102696789
y= 0.8387499784485772
y= 0.8314204114211459
y= 0.8286051955249649
y= 0.8285656555914835
y= 0.8297915186846528
y= 0.8312697736438287
y= 0.8324765218921963
y= 0.8332456979978418
y= 0.8336163607592184
y= 0.8337101315489143
y= 0.833654237067147
```
![График переходного процесса](fig.png)
```py
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA9/test.py ====
y= 0.0
y= 0.4347826086956522
y= 0.8771266540642723
y= 1.1305662858551822
y= 1.1883971255105579
y= 1.1326349288718767
y= 1.0497533578387872
y= 0.990644578833048
y= 0.9679847053552146
y= 0.9716581950194924
y= 0.9856417751200821
y= 0.9982074917220521
y= 1.0046687323933552
y= 1.005560453221529
y= 1.0035460777605603
y= 1.0010934567866612
y= 0.9995090295694802
y= 0.9990060583193288
y= 0.999210776397813
y= 0.9996464852690349
y= 0.9999972035112243
```
![График переходного процесса](k5.png)
```py
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA9/test.py ====
y= 0.0
y= 10.434782608695652
y= -62.42722117202269
y= 441.6213035259309
y= -3045.006010698934
y= 21072.830598329532
y= -145756.02311219365
y= 1008239.1249389423
y= -6974221.774992491
y= 48242372.61584475
y= -333704038.94107586
y= 2308310792.118783
y= -15967138737.795193
y= 110448523882.25536
y= -763998899668.5714
y= 5284763419071.18
y= -36555974632436.45
y= 252866434191791.06
y= -1749137704131481.2
y= 1.209920453773572e+16
y= -8.369309637553866e+16
```
![График переходного процесса](k20.png)
```py
===== RESTART: /Users/dmitrijantonov/Desktop/POAC/python-labs/TEMA9/test.py ====
y= 0.0
y= 1.7391304347826089
y= 1.6937618147448015
y= 0.9085559299745211
y= 0.9495540682030151
y= 1.3035341690149207
y= 1.2757616169252037
y= 1.116425550960422
y= 1.133140167539201
y= 1.2047517464994821
y= 1.1953257047692445
y= 1.163190713632341
y= 1.168291227922628
y= 1.1826887757160904
y= 1.180006868007609
y= 1.1735666352933953
y= 1.1749473300671665
y= 1.17782341716993
y= 1.1771240746521525
y= 1.175841826810497
y= 1.1761915011970139
```
![График переходного процесса](k002.png)

70
TEMA9/task.md Обычный файл
Просмотреть файл

@@ -0,0 +1,70 @@
# Общее контрольное задание по теме 8
**Антонов Дмитрий, А-03-23** \
Общее контрольное задание.
Создайте и запишите в модуль класс, содержащий следующие компоненты:
- конструктор, задающий четырем атрибутам (fio, otdel, dolzhnost, oklad), представляющим фа-милии сотрудников, название отделов, названия должностей сотрудников и размеры их окладов, некоторые начальные значения;
- метод для обеспечения операции повышения оклада сотрудника на заданное значение;
- метод для обеспечения перевода сотрудника из одного отдела в другой;
- метод для изменения должности сотрудника;
- свойство, содержащее перечень (список) поощрений сотрудника.
```py
class Departament:
def __init__(self,fio,otdel,dolzhnost,oklad):
self.fio = fio
self.otdel = otdel
self.dolzhnost = dolzhnost
self.oklad = oklad
self.__prm = list()
def increase(self,put):
self.oklad += put
def new_work(self,new_otdel):
self.otdel = new_otdel
def new_dolzhnost(self,new_dolzh):
self.dolzhnost = new_dolzh
def all_info(self):
print(self.fio,self.otdel,self.dolzhnost,self.oklad,self.prop)
def getter(self):
return self.__prm
def setter(self,new):
self.__prm.append(new)
prop = property(getter,setter)
```
Задание: Создайте 2 экземпляра класса, задайте им некоторые значения атрибутов и свойства. Отобразите эти значения. Попробуйте с этими экземплярами операции перевода из отдела в отдел, измене-ния должности и оклада, объявления благодарности.
```py
from control import Departament
empl_fr = Departament("Иванов И.И.","УИТ","Доцент",100)
empl_sec = Departament("Петров П.П.","ИРЭ","Аспирант",50)
empl_fr.all_info()
Иванов И.И. УИТ Доцент 100 []
empl_sec.all_info()
Петров П.П. ИРЭ Аспирант 50 []
empl_sec.new_work("УИТ")
empl_sec.all_info()
Петров П.П. УИТ Аспирант 50
empl_fr.new_dolzhnost("Академик")
empl_fr.increase(120)
empl_fr.all_info()
Иванов И.И. УИТ Академик 220
empl_fr.prop="Отличная работа!"
empl_fr.all_info()
Иванов И.И. УИТ Академик 220 Отличная работа!
empl_fr.prop="Отличная работа!"
empl_fr.prop="Отличная работа!"
empl_fr.prop="Отличная работа!"
empl_fr.all_info()
Иванов И.И. УИТ Доцент 100 ['Отличная работа!', 'Отличная работа!', 'Отличная работа!']
```

14
TEMA9/test.py Обычный файл
Просмотреть файл

@@ -0,0 +1,14 @@
###main_SAU
prm=[0.01,4,1.3,0.8] #Параметры модели: коэф.усиления, 2 пост.времени, обратная связь
from SAU import *
xx=[0]+[1]*20 #Входной сигнал – «ступенька»
SAUe=SAU(prm) # Создаём экземпляр класса
yt=[]
for xt in xx: # Прохождение входного сигнала
SAUe.zdn_zn(xt)
SAUe.model()
SAUe.otobraz()
yt.append(SAUe.ypr[1])
import pylab
pylab.plot(yt)
pylab.show()