3
respostas

fui fazendo como o prof. ensina mas a cada linha continuava dando erro finalizei, e não sei onde resolve isso

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Isaac, randrange(1,9) vai te retornar um único valor inteiro, entre 1 e 8. Não é possível converter um único valor inteiro em uma lista, e por isso foi gerado o erro "int" object is not iterable.

Provavelmente você está tentando gerar uma lista de valores inteiros. Para isso, você pode "sortear" n valores sem repetição dentro do intervalo de 1 a 8, usando o random.sample.


import random
x = random.sample(range(1,9), num_amostras)

Substituindo num_amostras pelo número de valores que deseja.

O erro que eu encontrei é porque tem um espaço entre o = list e o (range(1, 9)), remova o espaço x = list(range(1, 9)) que dará certo

x = list (range(1, 9)) # está com espaço entre list e ()
x = list(range(1, 9))

Isaac, complementando, se sua intenção era gerar uma sequência de números no intervalo 1 a 8, você usa list(range(1,9)). O range gera uma sequência de números, começando do primeiro valor que você colocou, até o último valor-1.

x = list(range(1,9))

No caso que você tinha usado anteriormente, o que o randrange(1,9) faz é gerar um número pseudoaletório entre 1 e 8. Apenas um número é gerado, não uma sequência.

Assim, se você deseja gerar uma lista sem repetição entre 1 e 8, mas com os valores "embaralhados", uma forma é usar o random.sample:

x = random.sample(range(1,9), 8) # onde o 8 aqui é usado pra mostrar que você quer 8 valores