20 дек. 2000 г.

Ввведение в программирование на Python (для детей) урок 10

Цикл for в языке программирования Python.

В седьмом уроке был рассмотрен цикл while. Однако это не единственный способ организации в языке Python повторения группы выражений. В программах, написанных на Питоне, широко применяется цикл for, который представляет собой цикл обхода заданного множества элементов (символов строки, объектов списка или словаря) и выполнения в своем теле различных операций над ними. Например, если имеется список чисел, и необходимо увеличить значение каждого элемента на две единицы, то можно перебрать список с помощью цикла for, выполнив над каждым его элементом соответствующее действие.

>>> spisok = [0,10,20,30,40,50,60,70,80,90]
>>> i = 0
>>> for element in spisok:
	spisok[i] = element + 2
	i = i + 1
 
>>> spisok
[2, 12, 22, 32, 42, 52, 62, 72, 82, 92]
>>>
В примере переменная i нужна для того, чтобы записать изменившееся значение элемента в список. В ней хранится значение индекса очередного элемента списка. В то время, как переменная element связывается со значением очередного элемента данных. В заголовке цикла for происходит обращение очередному элементу списка. В теле цикла элементу с индексом i присваивается сумма значения текущего (обрабатываемого) элемента и двойки. Далее индекс увеличивается на единицу, а поток выполнения программы переходит снова в заголовок цикла for, где происходит обращение к следующему элементу списка. Когда все элементы обработаны цикл for заканчивает свою работу. Отсутствие очередного элемента является условием завершения работы цикла for (для сравнения: в цикле while условием завершения служит результат false логического выражения в заголовке). Еще один момент: если счетчик не увеличивать на единицу (выражение i = i + 1), то не смотря на то, что все элементы списка будут обработаны, результат все время будет присваиваться первому элементу списка (с индексом 0).
С таким же успехом перебирать можно и строки, если не пытаться их при этом изменять:

>>> stroka = "привет"
>>> for bukva in stroka:
	print(bukva, end=' * ')
 
 
п * р * и * в * е * т * 
>>>
Цикл for используется и для работы со словарями:

>>> d = {1:'one',2:'two',3:'three',4:'four'}
>>> for key in d:
	d[key] = d[key] + '!'
 
>>> d
{1: 'one!', 2: 'two!', 3: 'three!', 4: 'four!'}
>>> 
Цикл for широко используется в языке программирования Python, т.к. является важным инструментом при обработки структур данных. Также следует запомнить, что цикл for в Питоне особенный. Он не является аналогом циклов for во многих других языках программирования, где представляет собой, так называемый, цикл со счетчиком.

Практическая работа

  1. Создайте список, состоящий из четырех строк. Затем, с помощью цикла for, выведите строки поочередно на экран.
  2. Измените предыдущую программу так, чтобы в конце каждой буквы строки добавлялось тире. (Подсказка: цикл for может быть вложен в другой цикл.)
  3. Создайте список, содержащий элементы целочисленного типа, затем с помощью цикла перебора измените тип данных элементов на числа с плавающей точкой. (Подсказка: используйте встроенную функцию float().)

Пример выполнения практической работы

>>> # задание 1
>>> list1 = ['hi','hello','good morning','how do you do']
>>> for i in list1:
	print(i)
 
hi
hello
good morning
how do you do
>>> # задание 2
>>> for i in list1:
	for j in i:
		print(j,end='.')
	print()
 
 
h.i.
h.e.l.l.o.
g.o.o.d. .m.o.r.n.i.n.g.
h.o.w. .d.o. .y.o.u. .d.o.
>>> # задание 3
>>> list2 = [56,78,45,23]
>>> i = 0
>>> for a in list2:
	list2[i] = float(a)
	i = i + 1
 
>>> list2
[56.0, 78.0, 45.0, 23.0]
>>>