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

12 KiB

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

Кузьменко Елена, А-02-23

1. Запустили интерактивную оболочку IDLE.

2.Управляющая инструкция if.

Первая операция. Определение значения dohod:

>>> porog = 5
>>> rashod1 = 6
>>> rashod2 = 4
>>> if rashod1 >= porog:
	dohod = 12
elif rashod2 == porog:
	dohod = 0
else:
	dohod = -8

	
>>> dohod
12

Вторая операция. Определение значения dohod:

>>> if rashod1 >= 3 and rashod2 ==4:
	dohod = rashod1
	if rashod2 == porog or rashod1 < rashod2:
		dohod = porog

		
>>> dohod
6

Операция с множественным ветвлением линий потока:

>>> if porog == 3:
	dohod = 1
elif porog == 4:
	dohod = 2
elif porog == 5:
	dohod = 3
else:
	dohod = 0

	
>>> dohod
3

Инструкция в одну строчку:

>>> if porog >=5: rashod1 = 6; rashod2 = 0

>>> rashod1; rashod2
6
0

Или:

>>> rashod1 = 1 if porog == 5 else 2
>>> rashod1
1

3.Управляющая инструкция for.

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

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


>>> temperatura 
50 # 5 + цикл(3+6+9+12+15)

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]

Здесь sps[:] - копия списка sps, потому кол-во элементов не увеличвается и заканчивается на последней 4-й итерации(всего 4 элемента в sps[:]).

3.3.Пример c созданием списка.

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

		
49
85
130
195
244
307
315
396
464
467

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

>>> stroka = 'Это - автоматизированная система'
>>> stroka1 = ""
>>> for ss in stroka:
	stroka1 += " " + ss

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

3.5.Конструкция list comprehension.

>>> 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.676767518464319, 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.6767675184643214, -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.6767675184643185, 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.4910320979328148, -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]

Отображение графика:

>>> import pylab
>>> x = list(sps2)
>>> y = list(range(100))
>>> pylab.plot(y,x)
[<matplotlib.lines.Line2D object at 0x000001AD2659D940>]
>>> pylab.title('3.5.График')
Text(0.5, 1.0, '3.5.График')
>>> pylab.show()

4.Управляющая инструкция while.

4.1.Цикл со счетчиком.

>>> rashod = 300
>>> while rashod:
	print("Расход =", rashod)
	rashod -= 50

	
Расход = 300
Расход = 250
Расход = 200
Расход = 150
Расход = 100
Расход = 50

Цикл останавливается, когда rashod принимает значение False, то есть rashod = 0. В остальных случаях 300, 250, 200... -> True

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

>>> import math
>>> stroka = 'Расчет процесса в объекте регулирования'
>>> i = 0
>>> sps = []
>>> while i < len(stroka):
	r = 1-2/(1+math.exp(0.1*i))
	sps.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

Отображение графика:

>>> import pylab
>>> x = list(range(i))
>>> y = list(sps)
>>> pylab.plot(y,x)
[<matplotlib.lines.Line2D object at 0x000001AD265F3B20>]
>>> pylab.title('4.2.График')
Text(0.5, 1.0, '4.2.График')
>>> pylab.show()

4.3.Проверка на простое число

Простое число такое, которое делится на самого себя и 1.

>>> chislo = 267
>>> kandidat = chislo//2 # 267//2 = 133 - максимально возможный делитель
>>> while kandidat > 1:
	if chislo%kandidat == 0: #проверка делимости
		print(chislo, ' имеет множитель ',kandidat)
		break #выявляется ПЕРВЫЙ возможный множитель(кроме 1) и завершает цикл
	kandidat -= 1 #рассматриваем остальные числа
else:
	print(chislo,' является простым!')

	
267  имеет множитель  89 

Программа проверка на простые числа в диапазоне от 250 до 300:

>>> for chislo in range(250,301):
	kandidat = chislo//2
	while kandidat > 1:
		if chislo%kandidat == 0:
			print(chislo, ' имеет множитель ',kandidat)
			break
		kandidat -= 1
	else:
		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

4.4.Инструкция continue.

Инструкция continue используют внутри циклов для прерывания текущей итерации и немедленного перехода к следующей. continue(в отличие от break) только пропускает оставшуюся часть кода и переходит к проверке условия следующей итерации.

Пример с for:

>>> sps = [2, 15, 14, 8, 3, 7, 10]
>>> for k in sps:
	if k > 10:
		continue #пропускает число больше 10
	print(k)

	
2
8
3
7
10

Пример с while:

>>> chislo = 0
>>> while chislo < 10:
	chislo += 1
	if chislo % 2 == 0:
		continue #пропускает, если число четное
	print(chislo)

	
1
3
5
7
9

5.Завершение работы со средой IDLE.