← Все вопросы

Почему range(1, 10) не доходит до 10?

Задан 9 месяцев назад320 просмотров3 ответа
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 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект