Был изучен и применен блок for, разобрана простая конструкция и две сложных.
Был изучен и применен блок for, разобрана простая конструкция и несколько сложных.
## 3.1 Изучение простого цикла for
@ -66,37 +66,39 @@
```py
>>>temperatura=5
>>>for i in range(3,18,3):
... temperatura+=i
...
...
temperatura+=i
>>>temperatura
50
```
## 3.2 Изучение сложного цикла for
## 3.2 Изучение первого сложного цикла for
Был применен цикл for, который приписывает к списку первый его элемент каждую итерацию, до тех пор, пока длина списка не будет равна или больше 10. Испробованы два способа передачи списка - как изменяемый список и как неизменяемую копию.
```py
>>>sps=[2,15,14,8]
>>>for k in sps:
... if len(sps)<=10:sps.append(sps[0]) #В данном варианте итерации проходят по изменяющемуся списку. Каждый раз список растет на единицу и его длина увеличивается. Каждую новую итерацию у списка новая длина.
... else:break
...
...
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]) #В этом варианте список итерируется по копии, то есть исходному списку, чья длина всегда равна 4. Цикл выполняется 4 раза, так как список имеет 4 элемента.
... else:break
...
...
if len(sps)<=10:sps.append(sps[0]) #В этом варианте список итерируется по копии, то есть исходному списку, чья длина всегда равна 4. Цикл выполняется 4 раза, так как список имеет 4 элемента.
else:break
>>>sps
[2, 15, 14, 8, 2, 2, 2, 2]
```
## 3.3
## 3.3 Изучение второго сложного цикла for
Был приненен цикл for, в котором при каждой итерации для i от 0 до 9, созданный пустой список пополняется значением от 0 до 97 и подсчитывается сумма чисел в списке. При достижении суммы числа более 500, итерация прерывается. Если же итерации успевают закончиться естественным образом и сумма получается значением менее 500, по сумма печатается на экран.
```py
>>>import random as rn
@ -131,11 +133,218 @@ else:
print(ss)
...
```
## 3.4 Изучение цикла с символьной строкой
Был применен цикл, который перебирает каждый символ из stroka и дополняет им ранее созданную пустую строку stroka1.
```py
>>>stroka='Это – автоматизированная система'
>>>stroka1=""
>>>for ss in stroka:
stroka1+=" "+ss
>>>stroka1
' Э т о – а в т о м а т и з и р о в а н н а я с и с т е м а'
>>>ss
'а'
```
## 3.5 Изучение записи цикла в строке
Был использован цикл для создания сигналов (цикл создает список из чисел, выжесленных по определенному выражению, в которое входит i, изменяемое в ходе итераций от 0 до 99). А также построоен график отображения сигналов.
```py
>>>import math
>>>sps2=[math.sin(i*math.pi/5+2) for i in range(100)]
Были изучены и применены различные варианты циклов с использованием блоков while.
## 4.1 Изучение цикла while со счетчиком
Был применен цикл while, который уменьшает значение rashod на 50 единиц. Здесь rashod = True до тех пор пока его значение положительное. Когда rashod становится равным 0, цикл прерывается. На каждой итерации печатается значение rashod.
```py
>>>rashod=300
>>>while rashod:
print("Расход=",rashod)
rashod-=50
Расход= 300
Расход= 250
Расход= 200
Расход= 150
Расход= 100
Расход= 50
```
## 4.2 Изучение цикла while с символьной строкой
Был применен цикл while, который для каждой i, что изменяется от 0 до длины строки stroka, вычисляет значение r, используя выражение, в которое входит i, и формирует из этих значений список. Далее по значениям из списка был построен график.
```py
>>>import math
>>>stroka='Расчет процесса в объекте регулирования'
## 4.3 Изучения блока while для проверки числа на свойство простого числа
Был применен цикл while, который проверяет остаток от деления заданного числа, на все числа начиная от половины собственного значения до 2, при этом если хоть раз этот остаток равен 0, то выводится надпись о том, что число имеет множитель и цикл прерывается. Если же остаток никогда не равен 0, то цикл выполняется до тех пор, пока делитель не будет равен единице и после этого будет выведена надпись, что число является простым.
```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
```
Также предыдущий код был изменен таким образом, что был добавлен цикл for, который еще перебирает числа от 250 до 300 включительно и выполняет вышеописанные операции с каждым числом.
```py
>>>for chislo in range(250, 301): # Проходим по диапазону чисел
Реализовать, записать в текстовый файл программы и результаты их выполнения при решении следующих задач:
• Для заданной символьной строки с англоязычным текстом (его можно заимствовать из помощи) определите порядковый номер каждой буквы в английском алфавите.
• Создайте список со словами из задания данного пункта. Для этого списка – определите, есть ли в нем некоторое заданное значение, и выведите соответствующее сообщение: либо о нахождении элемента, либо о его отсутствии в списке (проверить как с имеющимся, так и с отсутствующим словом).
• Создайте список студентов вашей группы (3-4 фамилии) и список их средних баллов в летней сессии – в порядке перечисления студентов в первом списке. Создайте еще 2 аналогичных списка для тех же студентов, но в другом порядке, по зимней сессии. Напишите инструкции, позволяющие по указанной (запрошенной и введенной) фамилии студента вывести его средние баллы по двум сессиям.
## Решение
```py
>>>import string
>>>text = "hello my friend"
>>>for char in text:
if char in string.ascii_lowercase:
order = string.ascii_lowercase.index(char) + 1
print(char, "=", order)
else:
print("это не буква")
h = 8
e = 5
l = 12
l = 12
o = 15
это не буква
m = 13
y = 25
это не буква
f = 6
r = 18
i = 9
e = 5
n = 14
d = 4
>>>Str = "Создайте список со словами из задания данного пункта"