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