Por Que Python EXCLUI o Último Item de um RANGE? Sabe Essa?

Por Que Python EXCLUI o Último Item de um RANGE? Sabe Essa?

Em Python quando definimos um range ou um slice, o último elemento é sempre excluído do intervalo gerado. Por que a linguagem Python trabalha desta forma.
Isso ocorre porque funciona bem com o fato dos índices na linguagem começarem em zero. Isso é vantajoso não só pra Python como também pra muitas outras linguagens onde os índices começam em zero.
Existe um artigo de 1982 do Dijkstra (link no comentário fixado) que dá os argumentos do porquê que essa é a melhor escolha. Matematicamente temos 4 possibilidades de gerar um intervalo numérico usando equações. A opção de excluir o índice de parada do intervalo tem a vantagem de facilitar a definição de listas nulas.
Na prática temos também a vantagem de encontrar o tamanho do intervalo apenas subtraindo os índices de fim e início do range. Outra vantagem é que fica fácil quebrar um intervalo no meio, o que é muito comum em algoritmos de divisão e conquista. Fica mais simples também concatenar intervalos.
Caso Python escolhesse incluir o índice de término, teríamos que colocar “+1” e “-1” em praticamente todas as situações nos códigos, e matematicamente ficaria mais feio, conforme o Dijkstra argumenta.
Portanto esta decisão de design só traz vantagens.
No vídeo eu cito mais argumentos.

#python #range #slice

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *