Dado que a função random.randrange é exclusiva, se eu usar como exposto o len(palavras) ela não vai deixar de mostrar a última palavra da lista?
Dado que a função random.randrange é exclusiva, se eu usar como exposto o len(palavras) ela não vai deixar de mostrar a última palavra da lista?
Oi Luiz, como você está? Espero que esteja bem =)
Excelente pergunta!
O random.randrange
é exclusivo ao último número e a função len irá nos retornar um valor que começa a contar do 1. Então se tivermos 5 palavras no arquivo, o len irá nos retornar o exato valor 5. Porém, os índices em Python começam do 0, o que quer dizer que aquelas 5 palavras para o Python começam do índice 0 e a última será o índice 4, por essa razão o random.randrange
a incluirá. Caso começasse do índice 1, da maneira como está codificado a última palavra seria deixada de fora.
Você pode fazer um teste simples para confirmar isso:
palavras.txt
com apenas 3 palavras, exemplo:banana
uva
pera
randrange
e qual palavra pertence aquele índice, como mostro abaixo:import random
def jogar():
print("*********************************")
print("***Bem vindo ao jogo da Forca!***")
print("*********************************")
arquivo = open("palavras.txt", "r")
palavras = []
for linha in arquivo:
linha = linha.strip()
palavras.append(linha)
arquivo.close()
print(len(palavras))
numero = random.randrange(0, len(palavras))
print(f'Indice: {numero} - Palavra do índice: {palavras[numero]}')
jogar()
Espero ter ajudado e qualquer dúvida é só falar. Abraços e bons estudos!