Só removi as variáveis acertou e errou, e coloquei a condição de ** errou==6 e '_' not in ** direto no if dentro do while para poder utilizar o break, uma vez que ele funciona somente com while. Posteriormente utilizei a condição if else para saída do resultado.
import os
print("_"*30)
print("{:^30}".format("Bem vindo ao jogo da Forca!"))
print("_"*30, '\n')
print(" ------")
print(" -")
print("- ( )")
print("- --I--")
print("- / \\")
print("- / \\")
print("- ")
print("---")
def separator():
return print("_"*30)
def jogar():
secret_word = "banana".upper()
letras_acertadas = ["_", "_", "_", "_", "_", "_"]
letras_utilizadas = []
tentativas = 6
erros = 0
# condicional do while
acertou, enforcou = False, False
# print(letras_acertadas)
while (not enforcou and not acertou):
chute = input("\nQUAL LETRA ?: ")
separator()
chute = chute.strip().upper() # remove espaços e passa a maiuscula
if(chute in secret_word):
index = 0 # contador
letras_utilizadas.append(chute)
print('LETRAS UTILIZADAS:', letras_utilizadas)
separator()
for letra in secret_word:
if (chute == letra):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
letras_utilizadas.append(chute)
print('TENTATIVAS RESTANTES:', (6 - erros))
separator()
print('LETRAS UTILIZADAS:', letras_utilizadas)
separator()
if (erros ==6):
break
if("_" not in letras_acertadas):
break
print('LETRAS UTILIZADAS:', letras_utilizadas)
print("PALAVRA SECRETA:\t", letras_acertadas)
print("*"*30)
if("_" not in letras_acertadas):
print("PARABÉNS VOCÊ VENCEU!")
else:
print("VOCÊ PERDEU, INICIE OUTRA PARTIDA.")
if(__name__ == "__main__"):
jogar()