1
resposta

No momento de gerar a aleatoriedade do arquivo:

No momento de gerar a aleatoriedade do arquivo:

numero = random.randrange(0, len(palavras) + 1)

O +1 é para adicionar mais um número à lista já que ao usar o len ele vai contar a quantidade de palavras no arquivo, porém como na hora de aleatorizar as palavras do arquivo ele ignora a ultima posição, por isso é necessário adicionar o + 1 no final, caso contrário a última palavra não será considerada na hora de gerar a palavra secreta. Fica a dica ;)

1 resposta

Olá Bruno, tudo bem com você?

Peço desculpas pela demora em lhe responder.

Quando temos uma lista em Python vamos está buscando os objetos salvos nessa lista que ficam alocados em um índice e através desse índice vamos poder manipular os valores que estão na lista. Esse índice inicia por zero e vai até o comprimento da lista menos um.

Digamos que queremos criar uma lista com o nome de alunos, declaramos ela conforme abaixo:

nomes = ['Ana', 'Pedro', 'Paulo', 'Carla', 'Raul']

Temos uma lista com cinco (5) nomes, caso tivéssemos uma lista grande poderíamos usar a função len() para retornar para nós o comprimento da lista.

print(len(nomes))

# Resultado

5

Agora que sabemos o comprimento da lista, qual o índice de cada nome? Como falado inicialmente o índice vai de zero ao comprimento da lista menos um, podemos confirmar colocando em uma tabela como abaixo, a primeira linha contém os nomes e a segunda seus índices, contando da esquerda para a direita.

Nomes :AnaPedroPauloCarlaRaul
índice:01234

Com a tabela acima conseguimos visualizar o índice de cada nome na lista.

Com a função random.randrange() podemos obter um número aleatório dentro de um intervalo especificado, vamos usá-la para buscar um nome aleatório na lista, para buscarmos um número em uma lista devemos informar em qual índice está a palavra; a nossa lista vai do índice 0 ao 4; devemos lembrar que o parâmetro inicial é inclusivo e o parâmetro final é exclusivo; com essas informações nosso código ficará da seguinte forma.

import random

nomes = ['Ana', 'Pedro', 'Paulo', 'Carla', 'Raul']

numero = random.randrange(0, 5)

print(nomes[numero])

Com o código acima podemos obter um nome da lista que esteja dentro do intervalo definido, mas, e para as listas em que não sabemos o tamanho total? Para elas podemos usa a função len() integrado com a função randrange(), ficando o código da seguinte forma:


import random

nomes = ['Ana', 'Pedro', 'Paulo', 'Carla', 'Raul']

print(len(nomes))

numero = random.randrange(0, len(nomes))

print(nomes[numero])

Observe que o len retorna o valor 5 e não 4. E isso ocorre porque a contagem para o len, começa com o valor 1 e não 0. Por isso, não há a necessidade de adicionarmos o +1 para buscarmos todos os valores da lista.

Abraços e bons estudos.

Em caso de mais dúvidas me coloco à disposição.