main
DeviatovaMY 2 месяцев назад
Родитель bbaa758337
Сommit 479e946f64

Двоичные данные
TEMA5/Figure_1.png

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

После

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

Двоичные данные
TEMA5/Figure_2.png

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

После

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

@ -0,0 +1,326 @@
# Отчет по теме 5
Девятова Мария, А-03-23
## 1 Запуск IDLE
## 2 Ветвление по условию – управляющая инструкция if
На данном этапе используются блоки инструкций. Блок инструкций может располагаться на нескольких строках.
Отступы во всех строках блока должны быть одинаковыми по отношению к первому символу управляющей инструкции.
Если имеется вложенная управляющая инструкция, то она вводится с таким же отступом,
а все строки ее блоков – отступают по отношению к ее первому символу.
Если в блоке инструкций только одна инструкция, её можно записывать без отступов сразу за знаком «:».
```
porog=10; rashod1=4; rashod2=21
if rashod1>=porog:
dohod=12
elif rashod2==porog:
dohod=0
else:
dohod=-8
dohod
-8
if rashod1>=3 and rashod2==4:
dohod=rashod1
if rashod2==porog or rashod1<rashod2:
dohod=porog
dohod
-8
if porog==3:
dohod=1
elif porog==4:
dohod=2
elif porog==5:
dohod=3
else:
dohod=0
dohod
0
```
Условные инструкции могут записываться также в одну строку.
```
dohod=2 if porog>=4 else 0
dohod
2
if porog>=5 : rashod1=6; rashod2=0
rashod1; rashod2
6
0
```
## 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]
```
Нужно учитывать, что в первом случае происходит проход k по объекту sps, который в самом цикле расширяется (в него добавляются новые элементы), т.е. без условия if-else был бы получен бесконечный цикл, т.к. k бы никогда не доходил до конца списка.
В случае, когда вместо объекта sps используется его срез (копия списка), проход k происходит по созданной копии. Т.к. длина созданной копии списка 4, то и было добавлено всего 4 элемента.
```
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]
```
### 3.3 Пример с использованием случайных чисел
Пример: создание списка с 10 целыми случайными числами из диапазона от 1 до 100. При этом, если сумма чисел не превышает 500, эта сумма должна быть отображена на экране. Если сумма элементов превышает 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)
466
```
```
sps5=[]
for i in range(10):
sps5.append(rn.randint(1,100))
ss=sum(sps5)
if ss>500: break
else:
print(ss)
ss
562
```
### 3.4 Пример с символьной строкой
```
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]
import pylab
pylab.plot(sps2)
[<matplotlib.lines.Line2D object at 0x000002C4F1336990>]
pylab.xlabel('время')
Text(0.5, 0, 'время')
pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
pylab.show()
```
![Синусоидальный сигнал](Figure_1.png)
## 4 Цикл «пока истинно условие» – управляющая инструкция while.
### 4.1 Цикл со счетчиком.
```
rashod=300
while rashod:
print("Расход=",rashod)
rashod-=50
Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50
```
Цикл выполняется, пока логическое значение rashod истинно, т.е. при преобразовании в логический тип объект имеет значение True.
Это условие выполняется всегда, пока rashod != 0. Как только rashod приобрёл значение 0, при преобразовании в логический тип получаем False, поэтому при проверке условия на истинность rashod происходит выход из цикла.
### 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
import pylab
pylab.plot(sps2)
[<matplotlib.lines.Line2D object at 0x000002C4F23BBED0>]
pylab.xlabel('время')
Text(0.5, 0, 'время')
pylab.ylabel('сигнал')
Text(0, 0.5, 'сигнал')
pylab.title('Сигнал на выходе инерционного звена')
Text(0.5, 1.0, 'Сигнал на выходе инерционного звена')
pylab.show()
```
![Инерционное звено](Figure_2.png)
### 4.3 Определение, является ли число простым (делится только на самого себя или 1).
```
chislo=267
kandidat=chislo // 2
while kandidat > 1:
if chislo%kandidat == 0:
print(chislo, ' имеет множитель ', kandidat)
break
kandidat -= 1
else:
print(chislo, ' является простым!')
267 имеет множитель 89
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
```
## 5 Завершение работы

@ -0,0 +1,108 @@
# Общее контрольное задание ао теме 5
Девятова Мария, А-03-23
## Задание
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:
1. Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
2. Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
3. Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
## Выполнение
1.
```
alphabet = 'abcdefghijklmnopqrstuvwxyz'
text = 'Laugh when you can. Its a cheap medicine'
for letter in text.lower():
if letter not in alphabet:
continue
else:
i = alphabet.index(letter)+1
print('Буква {} имеет порядковый номер {} в алфавите'.format(letter, i))
Буква l имеет порядковый номер 12 в алфавите
Буква a имеет порядковый номер 1 в алфавите
Буква u имеет порядковый номер 21 в алфавите
Буква g имеет порядковый номер 7 в алфавите
Буква h имеет порядковый номер 8 в алфавите
Буква w имеет порядковый номер 23 в алфавите
Буква h имеет порядковый номер 8 в алфавите
Буква e имеет порядковый номер 5 в алфавите
Буква n имеет порядковый номер 14 в алфавите
Буква y имеет порядковый номер 25 в алфавите
Буква o имеет порядковый номер 15 в алфавите
Буква u имеет порядковый номер 21 в алфавите
Буква c имеет порядковый номер 3 в алфавите
Буква a имеет порядковый номер 1 в алфавите
Буква n имеет порядковый номер 14 в алфавите
Буква i имеет порядковый номер 9 в алфавите
Буква t имеет порядковый номер 20 в алфавите
Буква s имеет порядковый номер 19 в алфавите
Буква a имеет порядковый номер 1 в алфавите
Буква c имеет порядковый номер 3 в алфавите
Буква h имеет порядковый номер 8 в алфавите
Буква e имеет порядковый номер 5 в алфавите
Буква a имеет порядковый номер 1 в алфавите
Буква p имеет порядковый номер 16 в алфавите
Буква m имеет порядковый номер 13 в алфавите
Буква e имеет порядковый номер 5 в алфавите
Буква d имеет порядковый номер 4 в алфавите
Буква i имеет порядковый номер 9 в алфавите
Буква c имеет порядковый номер 3 в алфавите
Буква i имеет порядковый номер 9 в алфавите
Буква n имеет порядковый номер 14 в алфавите
Буква e имеет порядковый номер 5 в алфавите
```
2.
```
tt = 'Создайте список со словами из задания данного пункта Для этого списка определите есть ли в нем некоторое заданное значение и выведите соответствующее сообщение: либо о нахождении элемента либо о его отсутствии в списке проверить как с имеющимся так и с отсутствующим словом'
ss = tt.split(' ')
ss
['Создайте', 'список', 'со', 'словами', 'из', 'задания', 'данного', 'пункта', 'Для', 'этого', 'списка', 'определите', 'есть', 'ли', 'в', 'нем', 'некоторое', 'заданное', 'значение', 'и', 'выведите', 'соответствующее', 'сообщение:', 'либо', 'о', 'нахождении', 'элемента', 'либо', 'о', 'его', 'отсутствии', 'в', 'списке', 'проверить', 'как', 'с', 'имеющимся', 'так', 'и', 'с', 'отсутствующим', 'словом']
word=input('Введите искомое слово в списке: '); mess='Слово есть в списке!' if word in ss else 'Слова нет в списке!'; print(mess)
Введите искомое слово в списке: списка
Слово есть в списке!
word=input('Введите искомое слово в списке: '); mess='Слово есть в списке!' if word in ss else 'Слова нет в списке!'; print(mess)
Введите искомое слово в списке: списка
Слово есть в списке!
word=input('Введите искомое слово в списке: '); mess='Слово есть в списке!' if word in ss else 'Слова нет в списке!'; print(mess)
Введите искомое слово в списке: спис
Слова нет в списке!
```
3.
```
spis1=['Ефимова', 'Гордиевских', 'Антонов']
mark1=[4.12, 4.56, 5.0]
spis2=['Антонов', 'Гордиевских', 'Ефимова']
mark2=[4.91, 4.83, 4.78]
stud=input('Введите фамилию студента: ')
Введите фамилию студента: Антонов
if (stud in spis1) and (stud in spis2):
summer=mark1[spis1.index(stud)]
winter=mark2[spis2.index(stud)]
print('Балл студента с фамилией {} на летней сессии: {}, на зимней сессии: {}'.format(stud, summer, winter))
else:
print('Студента с фамилией {} нет в списках'.format(stud))
Балл студента с фамилией Антонов на летней сессии: 5.0, на зимней сессии: 4.91
stud=input('Введите фамилию студента: ')
Введите фамилию студента: Корнеев
if (stud in spis1) and (stud in spis2):
summer=mark1[spis1.index(stud)]
winter=mark2[spis2.index(stud)]
print('Балл студента с фамилией {} на летней сессии: {}, на зимней сессии: {}'.format(stud, summer, winter))
else:
print('Студента с фамилией {} нет в списках'.format(stud))
Студента с фамилией Корнеев нет в списках
```
Загрузка…
Отмена
Сохранить