Python!!!!! Выручайте, друзья-программисты) я недавно начала учить python и возникли вопросы с циклом for. Допустим есть диапазон [12;135], в этом случае будет запись:
for i in range(12, 135+1)
Но если нужно идти от большего к меньшему с шагом -1, то к какому из двух чисел нужно прибавить 1?
for i in range(135+1, 12, -1)
или
for i in range(135, 12+1, -1)
?
Буду безмерно благодарна за ответ♡))) а за правильный-вдвойне)
Answers & Comments
Verified answer
Здравствуйте!
Функция range() может принимать 3 аргумента.
Рассмотрим функцию range(a, b, c)
Функция вернёт нам промежуток [a, b) с шагом c.
Действительно, если нам нужен промежуток [12; 135], то стоит использовать range(12, 135 + 1), так как аргумент b не будет включаться в полученный промежуток.
Теперь рассмотрим промежуток [12, 135], но расположим числа в порядке уменьшения. Значит аргумент с будет равен -1.
Теперь вспоминаем, что аргумент а включается в промежуток, а значит ничего прибавлять не нужно. Получаем а = 135. Завершать промежуток будет число 12. Но аргумент b не включается в цикл. Значит нужно указать число, которое будет следующим по ходу промежутка. Это число 11. b = 11. А c = -1, как мы сказали ранее.
Получаем функцию range(135, 11, -1). Проверим, как она работает. Число 135 войдёт в промежуток и будет первым, дальше оно возвращать предыдущие числа и так до 12. Так как 11 завершает промежуток, но не входит в него, то 12 будет последним числом в данном промежутке.