-
Title:
02-42 Процедура print_numbers() (Решение)
-
Description:
-
Вот один из способов определить print_numbers():
-
с помощью инструкции def мы создаем процедуру,
-
которая принимает одно входное значение.
-
Мы присвоим ему имя n.
-
Это верхний предел, до которого мы выводим числа.
-
Теперь для while-цикла нам понадобится новая переменная,
-
в которой будут храниться итерации цикла.
-
Мы назовем ее i и присвоим ей значение 1 – это первое число, которое нужно вывести на экран.
-
Теперь нам нужно создать цикл, поэтому запишем while
-
и условие, позволяющее выполнять цикл
-
до числа n включительно.
-
Нам нужно вывести числа от 1 до n включительно.
-
Поэтому наша проверка будет содержать условие «меньше или равно».
-
Нам нужно выполнять цикл, пока i меньше или равно n.
-
Как только i станет больше n, нам придется остановиться.
-
В теле цикла мы выводим значение i,
-
и прибавляем к i единицу.
-
Нам не нужно ничего возвращать: согласно заданию, единственное назначение процедуры
-
в том, чтобы вывести нужные числа.
-
Давайте теперь проверим процедуру с параметром 3.
-
Мы видим, что она вывела числа 1, 2, 3.
-
Есть много других способов написать эту процедуру.
-
К примеру, мы могли бы начать с i = 0
-
и изменить условие цикла на i < n.
-
Теперь мы останавливаем цикл как только i становится равным n.
-
Для того, чтобы этот код выводил нужные числа, нам нужно перенести инструкцию print.
-
Нам нужно выводить значение i после того, как мы увеличиваем его на 1,
-
выводимые числа должны начинаться с 1, чего мы этим и добъемся.
-
И последнее число, которое мы выводим должно быть равно n, чего мы также достигли.
-
Как только значение i станет равно n, это условие станет ложным,
-
и мы прекратим выполнение цикла – поэтому,
-
запустив этот код, мы получим тот же результат, вывод чисел 1, 2, 3.
-
В качестве еще одного теста проверим, что будет, если мы передадим в процедуру ноль.
-
Когда мы запустим этот код, он ничего не выведет на экран.
-
Поскольку в случае i = 0 условие i < n будет равно False.
-
0 не меньше 0, поэтому мы вообще не попадем в тело цикла
-
и ничего не выведем, что кажется вполне разумным.
-
Поскольку нам нужно вывести все числа между 1 и входным значением,
-
в случае, когда входное значение равно 0, имеет смысл не выводить ничего.