Сравнить коммиты
6 Коммитов
a185e7e4b4
...
main
| Автор | SHA1 | Дата | |
|---|---|---|---|
|
|
5b78df2a99 | ||
|
|
38387e98f7 | ||
|
|
0cb3072d7c | ||
|
|
eb4349f8a3 | ||
|
|
39f0d2548a | ||
|
|
4f678a7432 |
Двоичные данные
TEMA5/Figure_1.png
Обычный файл
|
После Ширина: | Высота: | Размер: 54 KiB |
Двоичные данные
TEMA5/Figure_2.png
Обычный файл
|
После Ширина: | Высота: | Размер: 18 KiB |
277
TEMA5/report.md
Обычный файл
@@ -0,0 +1,277 @@
|
||||
# Отчет по теме 5
|
||||
|
||||
**Антонов Дмитрий, А-03-23**
|
||||
|
||||
### Начало работы, изучение циклов и ветвлений
|
||||
### 1. Изучение ветвления if else
|
||||
- Множественное ветвление с помощью elif
|
||||
```py
|
||||
porog = 5
|
||||
rashod1 = 10
|
||||
rashod2 = 15
|
||||
if rashod1>=porog:
|
||||
dohod=12
|
||||
elif rashod2==porog:
|
||||
dohod=0
|
||||
else:
|
||||
dohod=-8
|
||||
dohod
|
||||
12
|
||||
```
|
||||
#### 1.1 Проверка сложного условия
|
||||
```py
|
||||
if rashod1>=3 and rashod2==4:
|
||||
dohod=rashod1
|
||||
if rashod2==porog or rashod1<rashod2:
|
||||
dohod=porog
|
||||
dohod
|
||||
12
|
||||
```
|
||||
#### 1.2 Пример нескольких ветвей elif
|
||||
```py
|
||||
if porog==3:
|
||||
dohod=1
|
||||
elif porog==4:
|
||||
dohod=2
|
||||
elif porog==5:
|
||||
dohod=3
|
||||
else:
|
||||
dohod=0
|
||||
dohod
|
||||
3
|
||||
```
|
||||
#### 1.3 Присваивание значения переменной с использованием условий if else
|
||||
```py
|
||||
dohod=2 if porog>=4 else 0
|
||||
dohod
|
||||
2
|
||||
```
|
||||
- Блок действий можно записать в строку
|
||||
```py
|
||||
if porog>=5: rashod1=6; rashod2=0
|
||||
rashod1
|
||||
6
|
||||
```
|
||||
### 2. Изучения цикла for
|
||||
```py
|
||||
temperatura=5
|
||||
for i in range(3,18,3):
|
||||
temperatura+=i
|
||||
temperatura
|
||||
50
|
||||
```
|
||||
#### 2.1 Комбинированние цикла for и if
|
||||
```py
|
||||
sps=[2,15,14,8]
|
||||
for k in sps:
|
||||
if len(sps)<=10:sps.append(sps[0])
|
||||
else:break
|
||||
sps
|
||||
[2, 15, 14, 8, 2, 2, 2, 2, 2, 2, 2]
|
||||
```
|
||||
- В цикле ниже создается копия списка
|
||||
```py
|
||||
sps=[2,15,14,8]
|
||||
for k in sps[:]:
|
||||
if len(sps)<=10:sps.append(sps[0])
|
||||
else:break
|
||||
sps
|
||||
[2, 15, 14, 8, 2, 2, 2, 2]
|
||||
|
||||
import random as rn;sps5=[]
|
||||
|
||||
for i in range(10):
|
||||
sps5.append(rn.randint(1,100))
|
||||
ss=sum(sps5)
|
||||
if ss>500: break
|
||||
else:
|
||||
print(ss)
|
||||
|
||||
for i in range(10):
|
||||
sps5.append(rn.randint(1,10))
|
||||
ss=sum(sps5)
|
||||
if ss>500: break
|
||||
else:
|
||||
print(ss)
|
||||
992
|
||||
|
||||
sps5=[]
|
||||
for i in range(10):
|
||||
sps5.append(rn.randint(1,100))
|
||||
ss=sum(sps5)
|
||||
if ss>500: break
|
||||
else:
|
||||
print(ss)
|
||||
453
|
||||
|
||||
stroka='Это – автоматизированная система';stroka1=""
|
||||
for ss in stroka:
|
||||
stroka1+=" "+ss
|
||||
stroka1
|
||||
' Э т о – а в т о м а т и з и р о в а н н а я с и с т е м а'
|
||||
```
|
||||
### 3. Запись цикла в строке
|
||||
```py
|
||||
import math
|
||||
sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
|
||||
sps2
|
||||
[0.9092974268256817, 0.49103209793281005, -0.11479080280322804, -0.6767675184643197, -0.9802420445539634, -0.9092974268256817, -0.49103209793281016, 0.11479080280322791, 0.6767675184643196, 0.9802420445539634, 0.9092974268256818, 0.4910320979328103, -0.1147908028032278, -0.6767675184643196, -0.9802420445539632, -0.9092974268256818, -0.4910320979328104, 0.11479080280322768, 0.6767675184643195, 0.9802420445539632, 0.9092974268256819, 0.4910320979328105, -0.11479080280322579, -0.6767675184643194, -0.9802420445539632, -0.9092974268256819, -0.4910320979328106, 0.11479080280322743, 0.6767675184643193, 0.9802420445539632, 0.909297426825682, 0.49103209793281066, -0.1147908028032273, -0.6767675184643192, -0.9802420445539632, -0.909297426825682, -0.4910320979328108, 0.11479080280322719, 0.6767675184643192, 0.9802420445539631, 0.9092974268256822, 0.491032097932814, -0.11479080280322707, -0.676767518464319, -0.9802420445539625, -0.9092974268256822, -0.491032097932811, 0.11479080280323047, 0.6767675184643189, 0.9802420445539625, 0.9092974268256822, 0.4910320979328142, -0.11479080280322682, -0.6767675184643215, -0.9802420445539631, -0.9092974268256808, -0.4910320979328112, 0.11479080280322317, 0.6767675184643187, 0.9802420445539624, 0.9092974268256823, 0.4910320979328082, -0.11479080280322658, -0.6767675184643213, -0.980242044553963, -0.9092974268256838, -0.49103209793281144, 0.11479080280322293, 0.6767675184643186, 0.9802420445539637, 0.9092974268256824, 0.49103209793280844, -0.11479080280322633, -0.6767675184643158, -0.980242044553963, -0.9092974268256839, -0.49103209793281166, 0.11479080280322974, 0.6767675184643184, 0.9802420445539637, 0.9092974268256825, 0.4910320979328149, -0.11479080280321903, -0.6767675184643209, -0.9802420445539629, -0.909297426825681, -0.4910320979328119, 0.11479080280322244, 0.6767675184643129, 0.9802420445539636, 0.9092974268256826, 0.49103209793281505, -0.11479080280322584, -0.6767675184643155, -0.9802420445539644, -0.9092974268256812, -0.49103209793281205, 0.1147908028032222, 0.6767675184643127, 0.980242044553965]
|
||||
```
|
||||
- Построение графика
|
||||
```py
|
||||
import matplotlib.pyplot as plt
|
||||
pylab.plot(sps2,color='green',label = 'синусоидальный сигнал')
|
||||
[<matplotlib.lines.Line2D object at 0x0000023A2BB96900>]
|
||||
pylab.title('График синусоидального сигнала')
|
||||
Text(0.5, 1.0, 'График синусоидального сигнала')
|
||||
plt.show()
|
||||
```
|
||||

|
||||
|
||||
### 4. Изучение цикла while
|
||||
```py
|
||||
rashod=300
|
||||
while rashod:
|
||||
print("Расход=",rashod)
|
||||
rashod-=50
|
||||
Расход= 300
|
||||
Расход= 250
|
||||
Расход= 200
|
||||
Расход= 150
|
||||
Расход= 100
|
||||
Расход= 50
|
||||
|
||||
import math
|
||||
stroka='Расчет процесса в объекте регулирования';i=0;sps2=[]
|
||||
while i<len(stroka):
|
||||
r=1-2/(1+math.exp(0.1*i))
|
||||
sps2.append(r)
|
||||
print('Значение в момент',i,"=",r)
|
||||
i+=1
|
||||
Значение в момент 0 = 0.0
|
||||
Значение в момент 1 = 0.049958374957880025
|
||||
Значение в момент 2 = 0.09966799462495568
|
||||
Значение в момент 3 = 0.14888503362331795
|
||||
Значение в момент 4 = 0.197375320224904
|
||||
Значение в момент 5 = 0.2449186624037092
|
||||
Значение в момент 6 = 0.2913126124515909
|
||||
Значение в момент 7 = 0.3363755443363322
|
||||
Значение в момент 8 = 0.3799489622552249
|
||||
Значение в момент 9 = 0.421899005250008
|
||||
Значение в момент 10 = 0.4621171572600098
|
||||
Значение в момент 11 = 0.5005202111902354
|
||||
Значение в момент 12 = 0.5370495669980353
|
||||
Значение в момент 13 = 0.5716699660851172
|
||||
Значение в момент 14 = 0.6043677771171636
|
||||
Значение в момент 15 = 0.6351489523872873
|
||||
Значение в момент 16 = 0.6640367702678489
|
||||
Значение в момент 17 = 0.6910694698329307
|
||||
Значение в момент 18 = 0.7162978701990245
|
||||
Значение в момент 19 = 0.7397830512740043
|
||||
Значение в момент 20 = 0.7615941559557649
|
||||
Значение в момент 21 = 0.7818063576087741
|
||||
Значение в момент 22 = 0.8004990217606297
|
||||
Значение в момент 23 = 0.8177540779702878
|
||||
Значение в момент 24 = 0.8336546070121553
|
||||
Значение в момент 25 = 0.8482836399575129
|
||||
Значение в момент 26 = 0.8617231593133063
|
||||
Значение в момент 27 = 0.874053287886007
|
||||
Значение в момент 28 = 0.8853516482022625
|
||||
Значение в момент 29 = 0.8956928738431645
|
||||
Значение в момент 30 = 0.9051482536448664
|
||||
Значение в момент 31 = 0.9137854901178277
|
||||
Значение в момент 32 = 0.9216685544064713
|
||||
Значение в момент 33 = 0.9288576214547277
|
||||
Значение в момент 34 = 0.935409070603099
|
||||
Значение в момент 35 = 0.9413755384972874
|
||||
Значение в момент 36 = 0.9468060128462683
|
||||
Значение в момент 37 = 0.9517459571646616
|
||||
Значение в момент 38 = 0.9562374581277391
|
||||
```
|
||||
- Построение графика
|
||||
```py
|
||||
import pylab
|
||||
pylab.plot(sps2,color='yellow')
|
||||
[<matplotlib.lines.Line2D object at 0x000001DE04A45550>]
|
||||
pylab.title('сигнал на выходе инерционного звена из списка sps2')
|
||||
Text(0.5, 1.0, 'сигнал на выходе инерционного звена из списка sps2')
|
||||
pylab.show()
|
||||
```
|
||||

|
||||
### 5. Проврека, является ли число простым с помощью циклов
|
||||
```py
|
||||
chislo=267 #Проверяемое число
|
||||
kandidat =chislo // 2
|
||||
kandidat
|
||||
133
|
||||
while kandidat > 1:
|
||||
if chislo%kandidat == 0: # Остаток от деления
|
||||
print(chislo, ' имеет множитель ', kandidat)
|
||||
break # else выполняться не будет
|
||||
kandidat -= 1
|
||||
else: # При завершении цикла без break
|
||||
print(chislo, ' является простым!')
|
||||
267 имеет множитель 89
|
||||
|
||||
for current in range(250,301,1):
|
||||
kandidat = current // 2
|
||||
while kandidat > 1:
|
||||
if current%kandidat == 0: # Остаток от деления
|
||||
print(current, ' имеет делитель ', kandidat)
|
||||
break # else выполняться не будет
|
||||
kandidat -= 1
|
||||
else: # При завершении цикла без break
|
||||
print(current, ' является простым!')
|
||||
|
||||
250 имеет множитель 125
|
||||
251 является простым!
|
||||
252 имеет множитель 126
|
||||
253 имеет множитель 23
|
||||
254 имеет множитель 127
|
||||
255 имеет множитель 85
|
||||
256 имеет множитель 128
|
||||
257 является простым!
|
||||
258 имеет множитель 129
|
||||
259 имеет множитель 37
|
||||
260 имеет множитель 130
|
||||
261 имеет множитель 87
|
||||
262 имеет множитель 131
|
||||
263 является простым!
|
||||
264 имеет множитель 132
|
||||
265 имеет множитель 53
|
||||
266 имеет множитель 133
|
||||
267 имеет множитель 89
|
||||
268 имеет множитель 134
|
||||
269 является простым!
|
||||
270 имеет множитель 135
|
||||
271 является простым!
|
||||
272 имеет множитель 136
|
||||
273 имеет множитель 91
|
||||
274 имеет множитель 137
|
||||
275 имеет множитель 55
|
||||
276 имеет множитель 138
|
||||
277 является простым!
|
||||
278 имеет множитель 139
|
||||
279 имеет множитель 93
|
||||
280 имеет множитель 140
|
||||
281 является простым!
|
||||
282 имеет множитель 141
|
||||
283 является простым!
|
||||
284 имеет множитель 142
|
||||
285 имеет множитель 95
|
||||
286 имеет множитель 143
|
||||
287 имеет множитель 41
|
||||
288 имеет множитель 144
|
||||
289 имеет множитель 17
|
||||
290 имеет множитель 145
|
||||
291 имеет множитель 97
|
||||
292 имеет множитель 146
|
||||
293 является простым!
|
||||
294 имеет множитель 147
|
||||
295 имеет множитель 59
|
||||
296 имеет множитель 148
|
||||
297 имеет множитель 99
|
||||
298 имеет множитель 149
|
||||
299 имеет множитель 23
|
||||
300 имеет множитель 150
|
||||
```
|
||||
42
TEMA5/task.md
Обычный файл
@@ -0,0 +1,42 @@
|
||||
# Общее контрольное задание по теме 5
|
||||
|
||||
|
||||
**Антонов Дмитрий, А-03-23**
|
||||
|
||||
### Фрагмент программы поиска средней оценки по введенной фамилии
|
||||
```py
|
||||
stng = 'Hello Poac'
|
||||
for symbol in strng:
|
||||
if(symbol.isalpha()):
|
||||
dictionary[symbol] = ord(symbol.lower()) - 96
|
||||
dictionary
|
||||
{'H': 8, 'e': 5, 'l': 12, 'o': 15, 'P': 16, 'a': 1, 'c': 3}
|
||||
```
|
||||
### Проверка нахождения элемента в списке
|
||||
```py
|
||||
spis = 'Создайте список со словами из задания данного пункта'.split(" ")
|
||||
|
||||
if 'список' in spis:
|
||||
print('слово найдено!!!!')
|
||||
else: print('Такого слова нет!!!')
|
||||
слово найдено!!!!
|
||||
if 'POAC' in spis:
|
||||
print('слово найдено!!!!')
|
||||
else: print('Такого слова нет!!!')
|
||||
Такого слова нет!!!
|
||||
```
|
||||
### Программа расчета средней оценки
|
||||
```py
|
||||
familia = ['Антонов','Ефимова','Гордиевских','Девятова']
|
||||
mark = [5,5,5,5]
|
||||
familia2 = ['Ефимова','Гордиевских','Девятова','Антонов']
|
||||
mark_winter = [5,5,5,5]
|
||||
inpt = input("Введите фамилию студента:")
|
||||
for curent in familia:
|
||||
for crnnt in familia2:
|
||||
if(crnnt == inpt and curent == inpt):
|
||||
indx = familia.index(crnnt)
|
||||
indx2 = familia2.index(crnnt)
|
||||
print((mark[indx]+mark_winter[indx2])/2)
|
||||
break
|
||||
```
|
||||
25
TEMA5/test.md
Обычный файл
@@ -0,0 +1,25 @@
|
||||
# Контрольное задание по лабораторной работе №5
|
||||
**Антонов Дмитрий А-03-23**
|
||||
### Создание кортежа со случайными числами в диапазоне от 20 до 98, размером 20
|
||||
```py
|
||||
kort = tuple(rnd.uniform(20,99) for i in range(20))
|
||||
kort
|
||||
(53.86162392247127, 23.64159596287047, 61.209080362158105, 90.19643865216301, 37.26052220441301, 26.291107540558315, 53.4491861411439, 70.91796073939588, 25.89828362411023, 45.202539366284824, 90.03260139325205, 76.24879442920543, 47.45325503226437, 61.971082638980874, 54.25047450833701, 46.43893208150455, 54.68716762380848, 92.31434477894435, 82.8913567268144, 40.52090472090592)
|
||||
```
|
||||
- Проверил тип созданного объекта
|
||||
```py
|
||||
type(kort)
|
||||
<class 'tuple'>
|
||||
```
|
||||
### Создание нового кортежа, который включает элементы со значениями от 40 до 70
|
||||
```py
|
||||
newkort = tuple(now for now in kort if 40<=now<=70)
|
||||
newkort
|
||||
(53.86162392247127, 61.209080362158105, 53.4491861411439, 45.202539366284824, 47.45325503226437, 61.971082638980874, 54.25047450833701, 46.43893208150455, 54.68716762380848, 40.52090472090592)
|
||||
```
|
||||
### Расчет среднего значения по новому кортежу
|
||||
```py
|
||||
average = sum(newkort)/ len(newkort)
|
||||
average
|
||||
51.90442463978593
|
||||
```
|
||||
12
TEMA5/л5.py
Обычный файл
@@ -0,0 +1,12 @@
|
||||
familia = ['Антонов','Ефимова','Гордиевских','Девятова']
|
||||
mark = [5,5,5,5]
|
||||
familia2 = ['Ефимова','Гордиевских','Девятова','Антонов']
|
||||
mark_winter = [5,5,5,5]
|
||||
inpt = input("Введите фамилию студента:")
|
||||
for curent in familia:
|
||||
for crnnt in familia2:
|
||||
if(crnnt == inpt and curent == inpt):
|
||||
indx = familia.index(crnnt)
|
||||
indx2 = familia2.index(crnnt)
|
||||
print((mark[indx]+mark_winter[indx2])/2)
|
||||
break
|
||||
Двоичные данные
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
|
||||
```
|
||||

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

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

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

|
||||
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()
|
||||