#python #range #logic
#python #диапазон #Логические
Вопрос:
Мой вопрос очень прост. Я новичок в python и недавно узнал о range()
python. И я просматриваю пример программы в этой задаче, которую они попросили напечатать таблицу обратного умножения из 3, используя функцию диапазона, и мой код
for i in range(30,3,-3):
print(i)
Но результат не такой, как я ожидал. Вывод не включает 3. Я не знаю почему.
На мой вопрос, последнее значение должно быть (стоп-значение -1), т.Е. В данном случае 2. Поэтому 3 также должен быть напечатан, но не так. Пожалуйста, объясните, почему.
Я неправильно понял логику? Если да, пожалуйста, объясните.
Комментарии:
1. Ожидаете ли вы 30 дюймов
list(range(3,30))
?
Ответ №1:
В документах python для диапазона (start, stop [, step]) говорится следующее: :
Для отрицательного шага содержимое диапазона по-прежнему определяется формулой r [i] = > start step * i, но ограничениями являются i > = 0 и r [i]> stop .
Это означает, что аргумент stop не включается в вычисление диапазона.
Комментарии:
1. Итак, ограничения для положительного значения шага — i>= 0 и r [i]<stop . Не так ли?
2. @SarweshArivazhagan Да, точно
Ответ №2:
range()
исключает точку остановки при создании вашего списка (ну, на самом деле они возвращают генератор). Вы должны изменить 3
на 2
, тогда он будет включать 3