1
resposta

Meu código está mostrando palavras que não existe

import random

def jogar():

    mensagem_de_abertura()
    palavra_secreta = carrega_palavra_secreta()

    letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
    print(letras_acertadas)

    enforcou = False
    acertou = False
    letras_faltando = letras_acertadas
    erro = 0

    #while serve para fazer um loop
    while(not enforcou and not acertou):

        chute = pede_chute()

        if(chute in palavra_secreta):
            marca_chute_correto(chute, letras_acertadas, palavra_secreta)
        else:
            erro += 1
            print('Ops, você errou! Faltam {} tentativas.'.format(6-erro))

        enforcou = erro == 6
        acertou = '_' not in letras_acertadas
        print(letras_acertadas)

        #.count() era para mostrar quantas vezes existe na lista/quantos faltam

        print( 'Ainda faltam acertar {} letras'.format(letras_faltando))

    if(acertou):
        mensagem_jogo_ganho()

    else:
        mensagem_jogo_perdido()

    print('FIM', 'DE', 'JOGO!', sep='-------')



# ------------------------------REPARTIÇÃO DO CODIGO------------------------------------------------------------

def mensagem_jogo_perdido():
    print('VOCÊ SE ENFORCOU!', 'GAME OVER!', sep='-')

def mensagem_jogo_ganho():
    print('VOCÊ SE LIVROU, PARABENS!', 'YOU WIN',sep='---')

def marca_chute_correto(chute, letras_acertadas, palavra_secreta):
    index = 0 
    for letra in palavra_secreta:
        if (chute == letra):
            #.upper() serve para formatar se a letra for maiuscula ou minuscula
            letras_acertadas[index] = letra
        index += 1

def pede_chute():
        chute = input('selecione uma letra: ')
        chute = chute.strip().upper()
        return chute
 #.strip() e uma buit-in para eliminar o espaço da entrada do chute/e tirar o \n - pular linha em codigo

def inicializa_letras_acertadas(palavra):
    return ['_' for letra in palavra]

def mensagem_de_abertura():
    print('#####################')
    print('JOGO', 'DA', 'FORCA!', sep='-')
    print('#####################')


def carrega_palavra_secreta():
    arquivo = open('palavras.txt', 'r')
    palavra = []

    for linha in arquivo:
        linha = linha.strip()
        palavra.append(linha)

    arquivo.close()

    numero = random.randrange(0,len(palavra))
    palavra_secreta = palavra[numero].upper()

    return palavra_secreta


if(__name__== '__main__'):#para rodar como programa principal 
    jogar()
1 resposta

A princípio o erro está relacionado ao arquivo 'palavras.txt', verifique se está utilizando o arquivo correto e se as palavras estão se comportando de forma correta dentro do array. Bons estudos :)