Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Não quer sair as letras quando eu preencho

Boa tarde, Alguem poderia me ajudar? eu não sei o que está acontecendo, já mudei a estrtura pra ver ser é os recuos da linha, mas em vez sair _ _ _ _ quer é as letras, sai no print letras_acertadas, queria entender o que eu errei no meu código.

MEU CÓDIGO:

def jogar():
    print('*********************************')
    print('***Bem-Vindo no jogo da Forca!***')
    print('*********************************')

    palavra_secreta = 'banana'
    letras_acertadas = ['_','_','_','_','_','_']

    enforcou = False
    acertou = False


    while(not enforcou and not acertou):

        chute = input('Qual letra?')
        chute = chute.strip ()

        index = 0 
        for letra in palavra_secreta:
            if(chute.upper() == letra.upper ()):
                letras_acertadas[index] = letra
            index = index + 1 
        print('letras_acertadas')

    print('Fim de Jogo')

if(__name__=='__main__'):
    jogar() 

Ele diz sobre esse erro também "TypeError: can only concatenate str (not "int") to str"

4 respostas

ele sai assim no terminal:

Documents/code/jogos_alura/forca.py
*********************************
***Bem-Vindo no jogo da Forca!***
*********************************
Qual letra?b
letras_acertadas
Qual letra? n
letras_acertadas
Qual letra?

Olá Laíza!

Creio que você errou ao chamar a função print logo abaixo do seu loop for. Você chamou "letras_acertadas" como uma string, entre aspas, desta forma:

print('letras_acertadas')

Tente chamá-la como uma variável, sem as aspas.

print(letras_acertadas)

Olá Laíza e Ethan! Tudo certo? Espero que sim. 🙂

Como o colega Ethan apontou, a presença das aspas na linha de código print('letras_acertadas') acaba retornando uma string ao invés da variável letras_acertadas.

Outra questão que vale uma atenção a mais seria a presença de alguns "espaços" entre o nome de alguns métodos e os parênteses.

Perceba os espaços logo acima do simbolo ^.

chute = chute.strip ()
                   ^
 if(chute.upper() == letra.upper ()):
                                ^

A existência desses espaços acaba inviabilizando a execução dos métodos strip() e upper(). Se eles não forem executados o código pode retornar alguns erros.

Espero ter ajudado! Quaisquer dúvidas, estou à disposição. 😉

solução!

deu certo, gente! Obrigada á todos :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software