Подробнее о цикле for и функции range() с тремя аргументами
Функция range()
также может принимать три аргумента - взгляните на код в редакторе.
Третий аргумент - приращение - это значение, добавляемое для управления переменной при каждом повороте цикла (как вы можете подозревать, значение приращения по умолчанию равно 1).
Вы можете сказать нам, сколько строк появится в консоли и какие значения они будут содержать?
Запустите программу, чтобы узнать, правы ли вы.
В окне консоли вы должны увидеть следующие строки:
The value of i is currently 2
The value of i is currently 5
output
Знаешь почему? Первый аргумент, переданный функции range()
, сообщает нам, какой начальный номер последовательности (отсюда 2
в выводе). Второй аргумент сообщает функции, где остановить последовательность (функция генерирует числа до числа, указанного вторым аргументом, но не включает его). Наконец, третий аргумент указывает шаг, который фактически означает разницу между каждым числом в последовательности чисел, созданной функцией.
2
(начальное число) → 5
(2
увеличить на 3 равно 5
- число находится в диапазоне от 2 до 8) → 8
(5
увеличить на 3 равно 8
- число не находится в диапазоне от 2 до 8, поскольку параметр остановки не включен в последовательность чисел, сгенерированная функцией).
Примечание: если набор, сгенерированный функцией range()
, пуст, цикл вообще не выполнит свое тело.
Как и здесь - вывода не будет:
for i in range(1, 1):
print("The value of i is currently", i)
Примечание: набор, созданный с помощью range()
, должен быть отсортирован в порядке возрастания. Невозможно заставить range()
создать набор в другой форме, если функция range()
принимает ровно два аргумента. Это означает, что второй аргумент range()
должен быть больше первого.
Таким образом, здесь тоже не будет вывода:
for i in range(2, 1):
print("The value of i is currently", i)
Давайте посмотрим на небольшую программу, задача которой - написать некоторые из первых степеней двойки:
power = 1
for expo in range(16):
print("2 to the power of", expo, "is", power)
power *= 2
Переменная expo
используется как управляющая переменная для цикла и указывает текущее значение экспоненты. Само возведение в степень заменяется умножением на два. Поскольку 2 0 равно 1, то 2 × 1 равно 2 1, 2 × 2 1 равно 2 2 и так далее. Для какого наибольшего показателя наша программа все еще выводит результат?