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

..

4 Коммитов

Автор SHA1 Сообщение Дата
SavinSA 92a96b6b46 report full
2 недель назад
SavinSA 1a37b6390a mergeo
2 недель назад
SavinSA d2624961f3 report first half
2 недель назад
Пользователь № 9 аудитории Ж-206 bec8fdfe0d module test
2 недель назад

Двоичные данные
TEMA7/pic2.png

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

После

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

@ -321,4 +321,217 @@ TypeError: 'tuple' object does not support item assignment
(1, 2, 3, 4)
```
## 5.1. Специальные типы пользовательских функций. Анонимные функции
```py
>>> import math
>>> anfun1 = lambda: 1.5+math.log10(17.23)
>>> anfun1()
2.7362852774480286
>>> anfun2 = lambda a,b: a+math.log10(b)
>>> anfun2(17,234)
19.369215857410143
>>> anfun3=lambda a,b=234: a+math.log10(b)
>>> anfun3(100)
102.36921585741014
>>>
```
## 5.2. Функции-генераторы
```py
>>> def func5(diap,shag):
"""Итератор, возвращающий значения
из диапазона от 1 до diap с шагом shag"""
for j in range(1,diap+1, shag):
yield j
>>> for mm in func5(7,3):
print(mm)
1
4
7
>>> alp = func5(7,3)
>>> print(alp,__next__())
>>> print(alp.__next__())
1
>>> print(alp.__next__())
4
>>> print(alp.__next__())
7
>>> print(alp.__next__())
Traceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
print(alp.__next__())
StopIteration
```
## 6.1. Примеры на локализацию объектов
### Пример 1.
```py
>>> glb=10
>>> def func7(arg):
loc1=15
glb=8
return loc1*arg
>>> res=func7(glb)
>>> res
150
>>> glb
10
```
### Пример 2.
```py
>>> def func8(arg):
loc1 = 15
print(glb)
glb=8
return(loc1*arg)
>>> res=func8(glb)
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
res=func8(glb)
File "<pyshell#41>", line 3, in func8
print(glb)
UnboundLocalError: local variable 'glb' referenced before assignment
>>> def func8(arg):
loc1 = 15
glb=8
print(glb)
return(loc1*arg)
>>> res = func8(glb)
8
>>> res
150
>>>
```
### Пример 3.
```py
>>> glb = 11
>>> def func7(arg):
loc1=15
global glb
print(glb)
glb = 8
return loc1*arg
>>> res = func7(glb)
11
>>> glb
8
```
## 6.2. Выявление локализации
```py
>>> globals().keys()
dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'os', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8'])
>>> locals().keys()
dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'os', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8'])
>>> def func8(arg):
loc1 = 15
glb=8
print(globals().keys())
print(locals().keys())
return loc1*arg
>>> hh=func8(glb)
dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'os', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8'])
dict_keys(['arg', 'loc1', 'glb'])
>>> 'glb' in globals().keys()
True
```
## 6.3. Локализация объектов при работе с вложенными функциями
```py
>>> def func9(arg2,arg3):
def func9_1(arg1):
loc1=15
glb1=8
print('glob_func9_1:', globals().keys())
print('loc1_func9_1:', locals().keys())
return loc1*arg1
loc1=5
glb=func9_1(loc1)
print('loc_func9:',locals().keys())
print('glob_func9:',globals().keys())
return arg2+arg3*glb
>>> kk=func9(10,1)
glob_func9_1: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'os', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
loc1_func9_1: dict_keys(['arg1', 'loc1', 'glb1'])
loc_func9: dict_keys(['arg2', 'arg3', 'func9_1', 'loc1', 'glb'])
glob_func9: dict_keys(['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__annotations__', '__builtins__', 'os', 'anfun1', 'math', 'anfun2', 'anfun3', 'func5', 'mm', 'alp', 'glb', 'func7', 'res', 'func8', 'hh', 'func9'])
>>> kk
85
```
## 6.4.
```py
>>> znach=input('k1,T,k2,Xm,A,F,N=').split(',')
k1,T,k2,Xm,A,F,N=5,20,2,1,10,0.02,50
>>> T=float(znach[1])
>>> k2 = float(znach[2])
>>> k1=float(znach[0])
>>> Xm = float(znach[3])
>>> A=float(znach[4])
>>> F=float(znach[5])
>>> N=int(znach[6])
>>> vhod=[]
>>> for i in range(N):
vhod.append(A*math.sin((2*i*math.pi)*F))
>>> vhod
[0.0, 1.2533323356430426, 2.486898871648548, 3.6812455268467796, 4.817536741017153, 5.877852522924732, 6.845471059286887, 7.705132427757892, 8.443279255020151, 9.048270524660197, 9.510565162951535, 9.822872507286887, 9.980267284282716, 9.980267284282716, 9.822872507286887, 9.510565162951536, 9.048270524660195, 8.44327925502015, 7.705132427757892, 6.845471059286888, 5.877852522924733, 4.817536741017152, 3.6812455268467814, 2.486898871648548, 1.2533323356430408, 1.2246467991473533e-15, -1.2533323356430428, -2.486898871648546, -3.681245526846779, -4.817536741017154, -5.87785252292473, -6.845471059286884, -7.705132427757894, -8.443279255020153, -9.048270524660198, -9.510565162951535, -9.822872507286887, -9.980267284282716, -9.980267284282716, -9.822872507286887, -9.510565162951536, -9.048270524660198, -8.44327925502015, -7.705132427757896, -6.84547105928689, -5.877852522924734, -4.817536741017153, -3.6812455268467787, -2.486898871648545, -1.2533323356430466]
>>> 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
>>> yi1=0;yin1=0;yi2=0
>>> vyhod=[]
>>> for xt in vhod:
xt1=xt-yi2
[yi1,yin1]=realdvig(xt1,k1,T,yi1,yin1)
yi2=tahogen(yin1,k2,yi2)
yt=nechus(yin1,Xm)
vyhod.append(yt)
>>> print('y=',vyhod)
y= [0, 0, 0.03263241167294595, 0.9745456461939759, 1.4445477037255587, 0.5534963485187296, -0.14317115231403954, -3.810424583957446, -5.935617950854518, -3.1454619295767294, 4.410078865544928, 17.906974115100144, 26.191694213352932, 16.564012161149634, -16.52439077227259, -67.59051021156763, -101.3214249457787, -69.9621783842152, 55.00346225455457, 246.14981490076363, 380.49988175932214, 278.83918136760593, -179.12097686946288, -894.831188510742, -1427.8203056594884, -1106.6971235336005, 553.0427518851675, 3227.436842271835, 5328.628272818676, 4345.723637601036, -1642.536200959916, -11619.299856185102, -19859.46237228057, -16988.531756411103, 4552.501490270824, 41710.04551030272, 73876.07518877511, 66108.68459616054, -11169.337014708513, -149332.61878005945, -274368.6364383781, -256250.17990633397, 20228.386522231223, 533135.2397813796, 1017335.790045514, 989751.144011423, 3441.7330011494814, -1897576.0088700322, -3766140.0629690504, -3810393.13835538]
>>> import pylab
>>> pylab.plot(vyhod)
[<matplotlib.lines.Line2D object at 0x000001C8BDCE54C0>]
>>> pylab.show()
```
![Скриншот полученного графика](pic2.png)

Загрузка…
Отмена
Сохранить