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

Subscribers:
21,200
Published on ● Video Link: https://www.youtube.com/watch?v=ST0Ofhz0JOA



Duration: 10:22
290 views
49


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







Tags:
python
programação
dicas de python
ranges
slices
slices em python
range python
slice python
por que python exclui o último item
índice começando em zero
dijkstra
artigo dijkstra
porque as numerações devem começar em 0
python começar em zero
python range
python slice
list comprehension python
intervalos python
curso de python
python tutorial
detalhes de python
python a fundo
sequências python