Решение задач Аннотация. Урок посвящен циклу for
Скачать 3.04 Mb.
|
Примеры решения задачОдин интересный способ узнать о работе вложенных циклов состоит в их использовании для вывода на экран комбинаций символов. Давайте взглянем на один простой пример. Предположим, что мы хотим напечатать на экране звездочки в виде прямоугольной таблицы: ****** ****** ****** ****** ****** ****** ****** ****** Таблица состоящая из звездочек состоит из 8 строк и 6 столбцов. Приведенный ниже фрагмент кода можно использовать для вывода одной строки звездочек: for i in range(6): print ( '*', end='') Для того чтобы завершить весь вывод таблицы звездочек, нам нужно выполнить этот цикл восемь раз. Мы можем поместить этот цикл в еще один цикл, который делает восемь итераций, как показано ниже: for i in range(8): for j in range(6): print('*', end='') print() Внешний цикл делает восемь итераций. Во время каждой итерации этого цикла внутренний цикл делает 6 итераций. (Обратите внимание, что в строке 4 после того, как все строки были напечатаны, мы вызываем функцию print(). Мы должны это сделать, чтобы в конце каждой строки продвинуть экранный курсор на следующую строку. Без этой инструкции все звездочки будут напечатаны на экране в виде одной длинной строки.) Давайте рассмотрим еще один пример. Предположим, что вы хотите напечатать звездочки в комбинации, которая похожа на приведенный ниже звездный треугольник: * ** *** **** ***** ****** ******* ******** Представим эту комбинацию звездочек, как сочетание строк и столбцов. В этой комбинации всего восемь строк. В первой строке один столбец. Во второй строке – два столбца. В третьей строке – три. И так продолжается до восьмой строки, в которой восемь столбцов. for i in range(8): for j in range(i + 1): print('*', end='') print() ЗАДАЧИ Установите в каком порядке, указанный вложенный цикл выведет пары чисел (i, j). for i in range(1, 4): for j in range(3, 6): print(i, j) 2 3 1 3 1 4 3 4 1 5 3 3 2 4 2 5 3 5 Что покажет приведенный ниже фрагмент кода? for i in range(1, 4): for j in range(3, 5): print(i + j, end='') Что покажет приведенный ниже фрагмент кода? counter = 0 for i in range(99, 102): temp = i while temp > 0: counter += 1 temp //= 10 print(counter) |