форкнуто от main/python-labs
				
			
							Родитель
							
								
									f43cd6d7d6
								
							
						
					
					
						Сommit
						07f66ace3c
					
				@ -0,0 +1,348 @@
 | 
				
			||||
# Отчет по теме 5
 | 
				
			||||
 | 
				
			||||
Ефремов Станислав, А-02-23
 | 
				
			||||
 | 
				
			||||
## 1 Запуск интерактивной оболочки IDLE 
 | 
				
			||||
 | 
				
			||||
Была запущена интерактивная оболочка IDLE.
 | 
				
			||||
 | 
				
			||||
## 2 Изучение блока ЕСЛИ
 | 
				
			||||
 | 
				
			||||
Общее правило написания:
 | 
				
			||||
 | 
				
			||||
if <условие>:
 | 
				
			||||
    <Блок инструкций, выполняемый, если условие истинно>
 | 
				
			||||
elif <условие2>:
 | 
				
			||||
    <Блок инструкций2, выполняемый, если условие2 истинно>
 | 
				
			||||
else:
 | 
				
			||||
    <Блок инструкций3, выполняемый, если условие ложно>
 | 
				
			||||
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
porog=4
 | 
				
			||||
rashod1=7
 | 
				
			||||
rashod2=11
 | 
				
			||||
if rashod1>=porog:
 | 
				
			||||
		dohod=12
 | 
				
			||||
elif rashod2==porog:
 | 
				
			||||
		dohod=0
 | 
				
			||||
else:
 | 
				
			||||
		dohod=-8
 | 
				
			||||
 | 
				
			||||
dohod
 | 
				
			||||
12
 | 
				
			||||
 | 
				
			||||
if rashod1>=3 and rashod2==4:
 | 
				
			||||
    dohod=rashod1
 | 
				
			||||
	if rashod2==porog or rashod1<rashod2:
 | 
				
			||||
		dohod=porog
 | 
				
			||||
 | 
				
			||||
			
 | 
				
			||||
dohod
 | 
				
			||||
Traceback (most recent call last):
 | 
				
			||||
  File "<pyshell#10>", line 1, in <module>
 | 
				
			||||
    dohod
 | 
				
			||||
NameError: name 'dohod' is not defined
 | 
				
			||||
if porog==3:
 | 
				
			||||
	dohod=1
 | 
				
			||||
elif porog==4:
 | 
				
			||||
	dohod=2
 | 
				
			||||
elif porog==5:
 | 
				
			||||
	dohod=3
 | 
				
			||||
else:
 | 
				
			||||
    dohod=0
 | 
				
			||||
 | 
				
			||||
dohod
 | 
				
			||||
2
 | 
				
			||||
```
 | 
				
			||||
```py
 | 
				
			||||
dohod=2 if porog>=4 else 0
 | 
				
			||||
dohod
 | 
				
			||||
2
 | 
				
			||||
if porog>=5 : rashod1=6; rashod2=0
 | 
				
			||||
 | 
				
			||||
rashod1
 | 
				
			||||
7
 | 
				
			||||
rashod2
 | 
				
			||||
11
 | 
				
			||||
```
 | 
				
			||||
## 3 Изучение блока FOR
 | 
				
			||||
for <Объект-переменная цикла> in <объект>:
 | 
				
			||||
    <Блок инструкций 1 – тело цикла>
 | 
				
			||||
else: 
 | 
				
			||||
    <Блок инструкций 2 – если  в цикле не сработал break>
 | 
				
			||||
### 3.1. Простой цикл.
 | 
				
			||||
```py
 | 
				
			||||
temperatura=5
 | 
				
			||||
for i in range(3,18,3):
 | 
				
			||||
	temperatura+=i
 | 
				
			||||
 | 
				
			||||
	
 | 
				
			||||
temperatura
 | 
				
			||||
50
 | 
				
			||||
```
 | 
				
			||||
### 3.2. Первый более сложный цикл.
 | 
				
			||||
 | 
				
			||||
#### 3.2.1.
 | 
				
			||||
```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]
 | 
				
			||||
```
 | 
				
			||||
#### 3.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]
 | 
				
			||||
#Отличие: Цикл итерируется по неизменной копии списка. Пройдя все 4 элемента, цикл завершится.
 | 
				
			||||
```
 | 
				
			||||
### 3.3. Второй сложный цикл.
 | 
				
			||||
```py
 | 
				
			||||
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)
 | 
				
			||||
 | 
				
			||||
369
 | 
				
			||||
sps5=[]
 | 
				
			||||
for i in range(10):
 | 
				
			||||
	sps5.append(rn.randint(1,100))
 | 
				
			||||
	ss=sum(sps5)
 | 
				
			||||
	if ss>500: break
 | 
				
			||||
else:
 | 
				
			||||
	print(ss)
 | 
				
			||||
 | 
				
			||||
	
 | 
				
			||||
438
 | 
				
			||||
sps5=[]
 | 
				
			||||
for i in range(10):
 | 
				
			||||
	sps5.append(rn.randint(1,100))
 | 
				
			||||
	ss=sum(sps5)
 | 
				
			||||
	if ss>500: break
 | 
				
			||||
else:
 | 
				
			||||
	print(ss)
 | 
				
			||||
 | 
				
			||||
	
 | 
				
			||||
495
 | 
				
			||||
#Если сумма не превысила 500 за 10 итераций, то  выполняется else
 | 
				
			||||
 | 
				
			||||
#если сумма превысила 500 на какой-то итерации, то сработает break и вывода не прозойдёт
 | 
				
			||||
```
 | 
				
			||||
### 3.4. Работа с символьной строкой
 | 
				
			||||
```py
 | 
				
			||||
stroka='Это – автоматизированная система'
 | 
				
			||||
stroka1=""
 | 
				
			||||
for ss in stroka:
 | 
				
			||||
	stroka1+=" "+ss #к текущей строке stroka1 добавляется пробел и текущий символ ss
 | 
				
			||||
 | 
				
			||||
	
 | 
				
			||||
stroka1
 | 
				
			||||
' Э т о   –   а в т о м а т и з и р о в а н н а я   с и с т е м а'
 | 
				
			||||
```
 | 
				
			||||
### 3.5. Вывод на график.
 | 
				
			||||
```py
 | 
				
			||||
import math
 | 
				
			||||
sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
 | 
				
			||||
import pylab
 | 
				
			||||
    pylab.plot(sps2)
 | 
				
			||||
[<matplotlib.lines.Line2D object at 0x000002A57ED02490>]
 | 
				
			||||
pylab.title('Синусоидальный сигнал')
 | 
				
			||||
Text(0.5, 1.0, 'Синусоидальный сигнал')
 | 
				
			||||
pylab.xlabel('Отсчеты')
 | 
				
			||||
Text(0.5, 0, 'Отсчеты')
 | 
				
			||||
pylab.ylabel('Амплитуда')
 | 
				
			||||
Text(0, 0.5, 'Амплитуда')
 | 
				
			||||
pylab.show()
 | 
				
			||||
```
 | 
				
			||||

 | 
				
			||||
## 4. Цикл «пока истинно условие» – управляющая инструкция while. Общее правило написания:
 | 
				
			||||
while <Условие>:
 | 
				
			||||
    <Блок инструкций 1 – тело цикла>
 | 
				
			||||
else:
 | 
				
			||||
    <Блок инструкций 2 – если в цикле не сработал break>
 | 
				
			||||
### 4.1. Цикл со счетчиком.
 | 
				
			||||
```py
 | 
				
			||||
rashod=300
 | 
				
			||||
while rashod:
 | 
				
			||||
	print("Расход=",rashod)
 | 
				
			||||
	rashod-=50
 | 
				
			||||
 | 
				
			||||
Расход= 300
 | 
				
			||||
Расход= 250
 | 
				
			||||
Расход= 200
 | 
				
			||||
Расход= 150
 | 
				
			||||
Расход= 100
 | 
				
			||||
Расход= 50
 | 
				
			||||
# Цикл завершился, потому что условие while rashod: стало ложным (False), когда значение переменной rashod достигло 0.
 | 
				
			||||
```
 | 
				
			||||
### 4.2. Пример с символьной строкой
 | 
				
			||||
```py
 | 
				
			||||
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
 | 
				
			||||
 | 
				
			||||
#### Оформим в график, добавив список с моментами времени:
 | 
				
			||||
 | 
				
			||||
i = 0
 | 
				
			||||
sps2 = []
 | 
				
			||||
time_points = []  # Создадим список для моментов времени
 | 
				
			||||
while i < len(stroka):
 | 
				
			||||
    r = 1 - 2 / (1 + math.exp(0.1 * i))
 | 
				
			||||
    sps2.append(r)
 | 
				
			||||
    time_points.append(i)  # Запоминаем момент времени
 | 
				
			||||
    i += 1
 | 
				
			||||
 | 
				
			||||
pylab.plot(time_points, sps2)
 | 
				
			||||
[<matplotlib.lines.Line2D object at 0x0000023EA70F6850>]
 | 
				
			||||
pylab.title('Инерционное звено')
 | 
				
			||||
Text(0.5, 1.0, 'Инерционное звено')
 | 
				
			||||
pylab.xlabel('Время')
 | 
				
			||||
Text(0.5, 0, 'Время')
 | 
				
			||||
pylab.ylabel('Выход')
 | 
				
			||||
Text(0, 0.5, 'Выход')
 | 
				
			||||
pylab.show()
 | 
				
			||||
 | 
				
			||||
```
 | 
				
			||||

 | 
				
			||||
### 4.3. Определение, является ли число простым (делится только на самого себя или 1).
 | 
				
			||||
```py
 | 
				
			||||
chislo=267   #Проверяемое число
 | 
				
			||||
kandidat =chislo // 2 		# Для значений chislo > 1
 | 
				
			||||
while kandidat > 1:
 | 
				
			||||
	if chislo%kandidat == 0: 	# Остаток от деления
 | 
				
			||||
		print(chislo, ' имеет множитель ', kandidat)
 | 
				
			||||
		break 		# else выполняться не будет
 | 
				
			||||
	kandidat -= 1
 | 
				
			||||
else: 			# При завершении цикла без break
 | 
				
			||||
         print(chislo, ' является простым!')
 | 
				
			||||
 | 
				
			||||
                                
 | 
				
			||||
267  имеет множитель  89
 | 
				
			||||
```
 | 
				
			||||
 | 
				
			||||
```py
 | 
				
			||||
#### Проверка простоты чисел в диапазоне от 250 до 300
 | 
				
			||||
for chislo in range(250, 301):
 | 
				
			||||
    kandidat = chislo // 2  # Для значений chislo > 1
 | 
				
			||||
    
 | 
				
			||||
    while kandidat > 1:
 | 
				
			||||
        if chislo % kandidat == 0:  # Остаток от деления
 | 
				
			||||
            print(chislo, ' имеет множитель ', kandidat)
 | 
				
			||||
            break  # else выполняться не будет
 | 
				
			||||
        kandidat -= 1
 | 
				
			||||
    else:  # При завершении цикла без break
 | 
				
			||||
        print(chislo, ' является простым!')
 | 
				
			||||
 | 
				
			||||
        
 | 
				
			||||
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
 | 
				
			||||
```
 | 
				
			||||
					Загрузка…
					
					
				
		Ссылка в новой задаче