Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

11 KiB

Отчет по теме 5

Бережков Дмитрий, А-01-23

1.Начало работы, настройка текущего каталога

>>> import os
>>> os.chdir('C:\\MPEI\\PO_ASY\\BerezhkovGit\\python-labs\\Tema5')

2. Ветвление по условию – управляющая инструкция if.

>>> porog=50
>>> rashod1=150
>>> if rashod1 >= porog:
...     dohod = 12
... elif rashod2 == porog:
...     dohod = 0
... else:
...     dohod = -8 # Это выполняется, если ни первое, ни второе условия не были истинными
... 
>>> dohod
12
>>> rashod1=8
>>> rashod2=4
>>> porog=4
>>> if porog==3:
    dohod=1
elif porog==4:
    dohod=2
elif porog==5:
    dohod=3
else:
    dohod=0
>>> dohod
2
>>> dohod=2 if porog>=4 else 0
>>> dohod
2
>>> if porog>=5 : rashod1=6; rashod2=0
... 
>>> rashod1
8
>>> rashod2
4

3. Цикл по перечислению – управляющая инструкция for.

3.1 Простой цикл

>>> temperatura=5
>>> for i in range(3,18,3):
...     temperatura+=i
... 
...     
>>> temperatura
50

3.2 Более сложный цикл

>>> 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]
>>> 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 в конец списка), до тех пор пока длина этого списка не превысит 10. Получается список длиной 11.

3.3 Пример: создание списка с 10 целыми случайными числами из диапазона от 1 до 100. При этом, если сумма чисел не превышает 500

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

402

for i in range(10): sps5.append(rn.randint(1,100)) ss=sum(sps5) if ss>500: break else: print(ss)

ss 546 sps5 [73, 74, 24, 43, 15, 90, 14, 4, 35, 30, 40, 57, 47]

После того, как прошло девять итераций, сумма элементов списка уже была больше 500, поэтому цикл закончился из-за if, а не из-за окончания диапазона range(10).


3.4 Пример с символьной строкой
```py
>>> stroka='Это – автоматизированная система'
>>> stroka1=""
>>> for ss in stroka:
	stroka1+=" "+ss

>>> stroka1
' Э т о   –   а в т о м а т и з и р о в а н н а я   с и с т е м а'

3.5 Запись цикла в строке

>>> 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]
## 4. Цикл «пока истинно условие» – управляющая инструкция while. 4.1 Цикл со счетчиком. ```py >>> rashod=300 >>> while rashod: ... print("Расход=",rashod) ... rashod-=50 ... Расход= 300 Расход= 250 Расход= 200 Расход= 150 Расход= 100 ``` Завершение цикла в данном случае произошло из-за того, что переменная rashod приняла значение 0. Это значение интерпретируется как False.

4.2 Пример с символьной строкой

>>> 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
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 ``` Дополним программу так, чтобы она проверяла все числа от 250 до 300. ```py >>> chislo = [x for x in range (250, 301)] >>> for a in chislo: ... kandidat = a // 2 ... while kandidat > 1: ... if a % kandidat == 0: ... print(a, ' имеет множитель ', kandidat) ... break ... kandidat -= 1 ... else: print(a, " является простым!") ... ... 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 ``` 4.4 Инструкция continue ```py >>> for i in range(1, 11): ... if i % 2 == 0: # Если число четное ... continue # Пропускаем оставшуюся часть цикла ... print(i) ... ... 1 3 5 7 9 ```