Самым частым вариантом инициализации цикла является следующая запись:
for a in range(1, 10):
В Python дословно эту строку можно прочитать следующим образом:
Для переменной А принимать значения, находящиеся в диапазоне от 1 до 9 (10 не включено).
Функция range() создает диапазон значений. Она может быть использована не только в сочетании с циклом for, но и просто отдельно. Об этом мы еще будем говорить позднее. На данный момент нужно просто запомнить такую конструкцию запуска цикла.
Давайте, к примеру, выведем все цифры от 1 до 10. Для этого не будем создавать отдельную программу, а просто протестируем в Python Shell:
Для того, чтобы наша программка заработала, необходимо просто еще один раз нажать на [Enter]. Еще одно. Смотрите, когда мы в конце строки for ставим двоеточие, то терминал понимает, что мы открываем цикл, и следующую строку сразу делает с отступом слева, как и положено.
Если нам необходимо получить диапазон значений с определенным шагом, к примеру: 2, 5, 8, 11, 14 – т.е. с шагом 3, то функция range() принимает такой вид:
range(2, 14, 3)
То есть шаг указывается третьим аргументом. Само собой, что шаг может быть отрицательным. По умолчанию всегда используется шаг 1, поэтому принято его не указывать.
Если в нашем цикле должен использоваться набор чисел, которые невозможно получить с помощью функции range() – т.е. это будет не последовательность, о просто набор любых чисел, - то можно после in в скобках их просто перечислить через запятую. Например:
for a in (10, 5, 17, 8, 23):
Попробуйте в терминале самостоятельно.
Вместо чисел в данном примере могут использоваться переменные. Попробуйте с переменными, предварительно задав им какие-либо значения.
Бывают случаи, когда при определенных условиях необходимо отказаться от выполнения определенных команд внутри цикла, но так, чтобы цикл не заканчивал свою работу, а просто запустил новую итерацию (итерация цикла – это один его «прогон»).
Для принудительного перехода к следующей итерации без обязательного выполнения всех оставшихся команд в теле цикла существует слово continue (т.е. «продолжить».)
Например, мы хотим вывести на экран все цифры от 0 до 9, кроме 5:
Как видите, после проверки на 5 сработал continue – т.е. ход выполнения программы «перешагнул» через оставшиеся команды в теле цикла (в нашем случае это только один print) и запустил новую итерацию цикла.
Есть еще одно управляющее слово: break. Оно принудительно завершает цикл. Например, если в нашем примере мы слово continue поменяем на break, то на экран не выведутся цифры от 6 и больше.
Комменты приветствуются. За палец вверх - отдельное спасибо. Удачи!
------------------------------
Список уроков Программирование на Python для начинающих. Базовый уровень
Следующий урок Цикл while
Предыдущий урок Ветвление с помощью конструкций if else elif
------------------------------
Задания
1. Дано целое число N и набор из N чисел. Вывести сначала минимальное, потом максимальное значение. Для решения использовать только один прогон цикла.
2. Дано целое число N и набор N пар чисел А и В, определяющих стороны прямоугольника. Вывести минимальную площадь и максимальный периметр прямоугольников. Для решения использовать только один прогон цикла.
3. Дано целое число N и набор из N чисел. Вывести номер элемента набора с максимальным значением.
4. Дано число В (>0) и набор из 10 чисел. Вывести минимальный элемент, больший В, а также его номер в наборе.
5. Дано целое число N (>2) и набор из N чисел. Найти два наименьших элемента из данного набора и вывести их в порядке возрастания.
6. Дано число N и набор из N чисел. Вывести максимальную сумму двух соседних чисел из данного набора.
7. Дано число N и набор из N целых чисел. Найти максимальное количество четных чисел, идущих подряд. Если четных нет вообще, то вывести 0.
8. Дано число N и набор из N целых чисел, содержащий только нули и единицы. Вывести номер элемента, с которого начинается самая длинная последовательность одинаковых чисел, и длину этой последовательности.
9. Переделать задание из урока 3, применив цикл для вывода диаграммы.
10. Вывести на экран числа от 1 до 9:
- Все числа одну строку.
- 9 одинаковых строк с числами от 1 до 9.
- 9 строк чисел. В первой будут все единицы, во второй – все двойки и т.д.
- 9 строк чисел. В первой строке будет только число 1, во второй строке – числа 1 и 2, … в девятой строке – все девять чисел от 1 до 9.
11. Реализовать игру «Угадай число». Дается 10 попыток. Для того, чтобы сгенерировать случайное число, воспользуйтесь методом random.randint(a, b) модуля random (нужно импортировать сначала эту библиотеку). Функция random.randint(a, b) генерирует случайное целое число в диапазоне от А до В.