Veja código:
def lista_de_palavras(): #para definir a listas de palavras que estão dentro do arquivo "palavras.tst" arquivo = open('palavras.txt', 'r') palavras = [] for linha in arquivo: linha = linha.strip() palavras.append(linha) arquivo.close() return palavras
def palavra_aleatoria(): #para escolher de forma aleatória a palavra numero = random.randrange(0, len(lista_de_palavras())) palavra_secreta = lista_de_palavras()[numero].upper() return palavra_secreta
Aqui vem a dúvida, por que quando coloco: print(palavra_aleatora) print(palavra_aleatora) print(palavra_aleatora) print(palavra_aleatora) print(palavra_aleatora)
Ele executa a função "print(palavra_aleatora()" e emite ao menos 3 palavras distintas, ao passo que se eu fizer: teste = palavra_aleatora print(teste) print(teste) print(teste) print(teste) print(teste) print(teste)
Ele imprime totdas as palavras iguasi, ou seja, ele para de executar a função "palavra_aleatora()"?
É porque quando eu define a variável "teste" ele gardou esse valor mesmo vindo da função? Pois no primeiro caso a cada linha, eu estou executando uma função novamente a função, ao passo que no segundo exemplo eu apenas executo a variável que está com o valor fixo?