3.2.1.5 Циклы в Python | for - продолжение
Создана 29.04.2023
Отредактирована 20.05.2023
Отредактирована 20.05.2023
Donate for site my friends.
https://www.donationalerts.com/r/nocip
Подробнее о цикле for и функции range() с тремя аргументами
Функция range() также может принимать три аргумента - взгляните на код ниже.
for i in range(2, 8, 3):
print("The value of i is currently", i)
Третий аргумент - это приращение - это значение, добавляемое для управления переменной при каждом повороте цикла (как вы можете подозревать, значение приращения по умолчанию равно 1).
Можете ли вы сказать нам, сколько строк появится в консоли и какие значения они будут содержать?
Запустите программу, чтобы узнать, были ли вы правы.
В окне консоли вы должны увидеть следующие строки:
The value of i is currently 2
The value of i is currently 5
Ты знаешь почему? Первый аргумент, переданный функции range(), сообщает нам, каков начальный номер последовательности (отсюда 2 на выходе). Второй аргумент сообщает функции, где остановить последовательность (функция генерирует числа до числа, указанного вторым аргументом, но не включает его). Наконец, третий аргумент указывает шаг, который фактически означает разницу между каждым числом в последовательности чисел, сгенерированной функцией.
2 (начальное число) → 5 (увеличение 2 на 3 равно 5 - число находится в диапазоне от 2 до 8) → 8 (увеличение 5 на 3 равно 8 - число не находится в диапазоне от 2 до 8, потому что Параметр stop не входит в последовательность чисел, генерируемую функцией.)
2 | 3 | 4 | 5 | 6 | 7 | 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 и так далее. Для какого наибольшего показателя наша программа все еще выводит результат?
Запустите код и проверьте, соответствует ли вывод вашим ожиданиям.
2 to the power of 0 is 1
2 to the power of 1 is 2
2 to the power of 2 is 4
2 to the power of 3 is 8
2 to the power of 4 is 16
2 to the power of 5 is 32
2 to the power of 6 is 64
2 to the power of 7 is 128
2 to the power of 8 is 256
2 to the power of 9 is 512
2 to the power of 10 is 1024
2 to the power of 11 is 2048
2 to the power of 12 is 4096
2 to the power of 13 is 8192
2 to the power of 14 is 16384
2 to the power of 15 is 32768
Функция range() также может принимать три аргумента - взгляните на код ниже.
for i in range(2, 8, 3):
print("The value of i is currently", i)
Третий аргумент - это приращение - это значение, добавляемое для управления переменной при каждом повороте цикла (как вы можете подозревать, значение приращения по умолчанию равно 1).
Можете ли вы сказать нам, сколько строк появится в консоли и какие значения они будут содержать?
Запустите программу, чтобы узнать, были ли вы правы.
В окне консоли вы должны увидеть следующие строки:
The value of i is currently 2
The value of i is currently 5
Ты знаешь почему? Первый аргумент, переданный функции range(), сообщает нам, каков начальный номер последовательности (отсюда 2 на выходе). Второй аргумент сообщает функции, где остановить последовательность (функция генерирует числа до числа, указанного вторым аргументом, но не включает его). Наконец, третий аргумент указывает шаг, который фактически означает разницу между каждым числом в последовательности чисел, сгенерированной функцией.
2 (начальное число) → 5 (увеличение 2 на 3 равно 5 - число находится в диапазоне от 2 до 8) → 8 (увеличение 5 на 3 равно 8 - число не находится в диапазоне от 2 до 8, потому что Параметр stop не входит в последовательность чисел, генерируемую функцией.)
2 | 3 | 4 | 5 | 6 | 7 | 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 и так далее. Для какого наибольшего показателя наша программа все еще выводит результат?
Запустите код и проверьте, соответствует ли вывод вашим ожиданиям.
2 to the power of 0 is 1
2 to the power of 1 is 2
2 to the power of 2 is 4
2 to the power of 3 is 8
2 to the power of 4 is 16
2 to the power of 5 is 32
2 to the power of 6 is 64
2 to the power of 7 is 128
2 to the power of 8 is 256
2 to the power of 9 is 512
2 to the power of 10 is 1024
2 to the power of 11 is 2048
2 to the power of 12 is 4096
2 to the power of 13 is 8192
2 to the power of 14 is 16384
2 to the power of 15 is 32768
««« Назад | Вперед »»» |