Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методички / 4. Циклы. Теория

.pdf
Скачиваний:
0
Добавлен:
08.03.2025
Размер:
167.27 Кб
Скачать

Занятие 4. Циклы.

Цикл – это фрагмент кода, который повторяется многократно. Т.е. благодаря циклам мы можем повторять код несколько раз, причем число повторов мы можем задать сами.

Цикл while (цикл с предусловием)

В нем сначала идет проверка условия (как в условной конструкции if), если условие истина, тогда идет фрагмент кода, который мы повторяем в цикле.

while выражение:

Фрагмент кода

Сначала идет while условие, затем идет фрагмент кода, который мы выполняем в цикле. Иными словами, сначала мы записываем переменную, обычно для этого используется буква i, и ей присваивается значение. Далее записывается цикл while, в котором ставится какое-либо условие.

Например:

i=0

while i < 10:

print (i)

Мы записали переменную, затем задали условие: пока наша переменная будет меньше 10, будет выполняться условие. Но сейчас наш цикл будет выполняться бесконечно. Поэтому добавляем следующее:

i=0

while i < 10:

print (i)

i +=2

Т.е. за одну итерацию будет добавляться +2, соответственно всего 5 раз выведется данный цикл.

Результат:

0

2

4

6

8

Оператор break останавливает цикл независимо от того, где мы находимся в цикле.

i = 1

while i<=10:

print (i)

i=i+1

Break

continue (прерывает проход цикла, который идет в данным момент и переходит сразу на следующий, т.е. пропускает одну итерацию).

Задание: нужно вывести числа от 1 до 10, кроме числа 5.

i = 1

while i<=10:

If i !=5:

print (i)

i=i+1

continue

результат

1

2

3

4

6

7

8

9

10

Цикл for – это (строковый) цикл, перебирающий итерируемые объекты (итерирование – процесс перебора).

Задание. Нужно разбить строку «Привет, группа 137!» на символы (на буквы, пробелы, запятые, восклицательный знак). Например, буква п – первый символ, буква р – второй, буква и – третий и так далее. В данном случае строка «Привет, группа 137!» является итерируемым объектом.

Операторы continue и break с циклом for.

for i in “Hello group 137”:

if i == “g”:

break

print(i*2, end = ‘ ’)

Результат

Hheelllloo

Что произошло? Вывелось слово Hello с удвоенными буквами и 2 пробела, а дальше произошел выход из цикла. Т.е. break не пропускает какую-либо итерацию, а выходит из цикла, когда доходит до буквы g.

for i in “Hello group 137”:

if i == “g”:

continue

print(i*2, end = ‘ ’)

Результат

Hheelllloo rroouupp 113377

Что произошло? Вывелась строка с удвоенными буквами, но когда цикл дошел до буквы g, итерация была пропущена.

Если нам необходимо вывести функцию несколько раз, то используется встроенная функция range (выдает последовательность целых чисел). Она принимает в себя 2 параметра: первый – с какого числа она берет эту последовательность, второй – до какого числа она берет эту последовательность.

Задание: вывести строку «Привет, группа 137!» 5 раз.

name = «Привет, группа 137!»

for i in range(1,5): # в данном случае он возьмет 1, но десятку не возьмет, т.е. напечатает меньше раз, чем нам нужно

print(i)

name = «Привет, группа 137!»

for i in range(1,6):

print(name)

Задание.

Есть список a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89].

Выведите все элементы, которые меньше 5.

for elem in a: if elem < 5:

print(elem)

print([elem for elem in a if elem < 5])

Задание.

Напишите программу для слияния нескольких словарей в один.

dict_a = {1:10, 2:20}

dict_b = {3:30, 4:40} dict_c = {5:50, 6:60} result = {}

for d in (dict_a, dict_b, dict_c): result.update(d)

Задание.

Напишите программу, которая принимает два списка и выводит все элементы первого, которых нет во втором.

set_1 = set(['HCT', 'HGB', 'LYMPH']) set_2 = set(['LYMPH', 'MCV'])

print(set_1 - set_2)

Задание.

Напишите программу, которая считывает со стандартного ввода целые числа, по одному числу в строке, и после первого введенного нуля выводит сумму полученных на вход чисел.

a = int(input()) b = 0

while a != 0: b += a

a = int(input()) print(b)

Задание для самостоятельной работы.

Напишите программу, которая считывает целые числа с консоли по одному числу в строке.

Для каждого введённого числа проверить:

если число меньше 10, то пропускаем это число; если число больше 100, то прекращаем считывать числа;

в остальных случаях вывести это число обратно на консоль в отдельной строке.

Пример ввода:

101

Вывод:

(пусто)

Пример ввода:

11

5

99

Вывод:

11

99

while 1 == 1:

q = int(input()) if q < 10:

continue if q > 100:

break print(q)