Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Porque ao manipular uma lista vazia com for/in range(8) gera-se um resultado em que a lista possui len 42?

Ao criar uma lista vazia com nome notas_matematica e manipulá-la para gerar números aleatórios para cada ítem em um range(8), a lista fica maior que o range selecionado e não sei o porquê ou como resolver. Isso se deu como indicado na aula de Import do curso de Python para DataScience. Muito obrigada a quem puder ajudar (: ![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

*Ela fica, inclusive, aumentando. Cada vez que rodo os códigos aparece um resultado mais longo, com mais números e, consequentemente, maior len.

solução!

Olá, Marla! Tudo bom? Espero que sim!

Antes de começarmos, duas coisas: Primeiro, é interessante publicar o código aqui no Fórum através dos blocos de código, e você pode aprender como utilizar no artigo Fórum da Alura: como inserir imagens nas perguntas. E segundo, a extensão temática do seu navegador com a viagem de Chihiro é muito bonita.

Vamos lá.

O seguinte bloco de código:

for notas in range(8):
    notas_matematica.append(randrange(0, 11))

Não cria a variável notas_matematica, ele apenas adiciona valores. Então toda vez que executarmos esse bloco, serão adicionados novos valores na variável notas_matematica, por esse motivo ela não para de crescer. Então para solucionar isso, nós devemos adicionar a linha notas_matematica = [] junta a esse bloco, que vai fazer com que o valor inicial dessa lista seja vazio.

Então o código seria:

from random import randrange

notas_matematica = []
for notas in range(8):
    notas_matematica.append(randrange(0, 11))

print(len(notas_matematica))
print(notas_matematica)

Resultado aleatório:

8
[0, 3, 4, 1, 0, 9, 9, 4]

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Não é necessário fechar o tópico, outras pessoas podem ser ajudadas por ele :D

Oi, Marcus! Tudo tranquilo (:

Agradeço o resposta! E simm haha gosto muito dessa extensão, obrigada (:

Sobre a dúvida, eu editei algumas vezes, na tentativa de fazer sentido o que estava tentando perguntar, e acabei deixando sem o print do início da aba. Mas vou adicionar aqui como você mostrou. Eu tinha já na verdade feito esse processo, mas de forma separada, porque fui fazendo junto das aulas. Olha só:

from random import randrange, seed

randrange(0, 11)

notas_matematica = []

notas_matematica.append(randrange(0,11))

notas_matematica

for notas in range(8):
 notas_matematica.append(randrange(0,11))

Depois disso segue como está no print. E aí, através da sua resposta, acabei refletindo e percebendo que: eu tinha testado o randrange; criado a lista vazia; manipulado ela com o append e depois executei pra constatar que para ter múltiplos resultados na lista eu precisaria usar o range, no caso o for notas in range(8): . Que foi o processo do professor mostrar que sem colocar o in range(8) sairia só um resultado pra lista e não 8. Isso tudo seguindo como indicado na aula. Mas, quando fui colocar o in range(8) eu criei uma nova linha e mantive a que usava o append sem especificar o range. Acho que por isso deve ter dado um conflito.

Mas agora deu certo! Obrigada pela reposta e desculpa falar demais haha estive tentando explicar como errei, espero ter feito sentido! Um abraço!