Russian subtitles

← 02-42 Процедура print_numbers() (Решение)

Get Embed Code
8 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. Вот один из способов определить print_numbers():
  2. с помощью инструкции def мы создаем процедуру,
  3. которая принимает одно входное значение.
  4. Мы присвоим ему имя n.
  5. Это верхний предел, до которого мы выводим числа.
  6. Теперь для while-цикла нам понадобится новая переменная,
  7. в которой будут храниться итерации цикла.
  8. Мы назовем ее i и присвоим ей значение 1 – это первое число, которое нужно вывести на экран.
  9. Теперь нам нужно создать цикл, поэтому запишем while
  10. и условие, позволяющее выполнять цикл
  11. до числа n включительно.
  12. Нам нужно вывести числа от 1 до n включительно.
  13. Поэтому наша проверка будет содержать условие «меньше или равно».
  14. Нам нужно выполнять цикл, пока i меньше или равно n.
  15. Как только i станет больше n, нам придется остановиться.
  16. В теле цикла мы выводим значение i,
  17. и прибавляем к i единицу.
  18. Нам не нужно ничего возвращать: согласно заданию, единственное назначение процедуры
  19. в том, чтобы вывести нужные числа.
  20. Давайте теперь проверим процедуру с параметром 3.
  21. Мы видим, что она вывела числа 1, 2, 3.
  22. Есть много других способов написать эту процедуру.
  23. К примеру, мы могли бы начать с i = 0
  24. и изменить условие цикла на i < n.
  25. Теперь мы останавливаем цикл как только i становится равным n.
  26. Для того, чтобы этот код выводил нужные числа, нам нужно перенести инструкцию print.
  27. Нам нужно выводить значение i после того, как мы увеличиваем его на 1,
  28. выводимые числа должны начинаться с 1, чего мы этим и добъемся.
  29. И последнее число, которое мы выводим должно быть равно n, чего мы также достигли.
  30. Как только значение i станет равно n, это условие станет ложным,
  31. и мы прекратим выполнение цикла – поэтому,
  32. запустив этот код, мы получим тот же результат, вывод чисел 1, 2, 3.
  33. В качестве еще одного теста проверим, что будет, если мы передадим в процедуру ноль.
  34. Когда мы запустим этот код, он ничего не выведет на экран.
  35. Поскольку в случае i = 0 условие i < n будет равно False.
  36. 0 не меньше 0, поэтому мы вообще не попадем в тело цикла
  37. и ничего не выведем, что кажется вполне разумным.
  38. Поскольку нам нужно вывести все числа между 1 и входным значением,
  39. в случае, когда входное значение равно 0, имеет смысл не выводить ничего.