← Все вопросы
Почему range(1, 10) не доходит до 10?
14
Только начал учить Python. Пишу:
for i in range(1, 10):
print(i)
Ожидал числа от 1 до 10, а выводится только до 9. Это баг или я чего-то не понимаю?
3 ответа
20
✓ Принятый ответ — помог автору
Это не баг, так и задумано. range(a, b) идёт от a до b, но b не включая — правая граница всегда исключается. Чтобы получить 1..10, пиши range(1, 11).
Логика в том, что range(len(x)) даёт ровно индексы 0..len-1, без +1/-1. Привыкнешь — станет удобно.
Дарья Громова Спасибо, наконец-то дошло 🙏 · 9 месяцев назад
Вячеслав Леонтьев то есть range(10) это 0..9, верно? · 9 месяцев назад
6
Запомнить просто: range(старт, стоп) — стоп это «куда не дойти». range(1, 10) → последнее число 9.
-1
это особенность питона, просто всегда прибавляй +1 к концу и не парься
Хайрутин Штанчаев ну это же и есть про range(1, 11), просто запутаннее сказано · 9 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.