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

Não consigo achar o erro

Olá, estou tentando fazer um jogo da forca parecido com o do curso, porém estou usando a minha própria logica e comparando com o código do instrutor e assim melhorando o meu compreendimento do Python.

Acontece que não consigo achar o erro no meu código.


    palavra_secreta = "Banana".upper
    acertos = ["_", "_", "_", "_", "_", "_",]
    acertou = "_" not in acertos

    while(not acertou):
        print(acertos)
        chute_letra = input("Digite uma letra ou palavra:")
        chute_letra = chute_letra.strip().upper()

       if(chute_letra in palavra_secreta):
             index=0
             print("acertou! Na posição:{}", index)
             acertos[index] = chute_letra


#restante do código

apresenta um erro assim que dou a entrada da letra:

erro:

Traceback (most recent call last):
  File "C:/Users/pablo/PycharmProjects/jogos/forca.py", line 33, in <module>
    jogar()
  File "C:/Users/pablo/PycharmProjects/jogos/forca.py", line 17, in jogar
    if(chute_letra in palavra_secreta):
TypeError: argument of type 'builtin_function_or_method' is not iterable

desde já, agradeço.

5 respostas

Pablo, tudo bom?

Por favor, posta o código todo para que a gente possa te ajudar. De cara vi que tem um erro no trecho abaixo:

acertos = ["_", "_", "_", "_", "_", "_",]

Tem uma vírgula a mais. Corrigindo:

acertos = ["_", "_", "_", "_", "_", "_"]

Mas não é esse o erro!

tirei, e nada mudou.

continua o mesmo erro.


def jogar():
    print("\n\n\n#####################################")
    print("# Bem vindo ao jogo de forca! #")
    print("#####################################")


    palavra_secreta = "Banana".upper
    acertos = ["_", "_", "_", "_", "_", "_"]
    acertou = "_" not in acertos

    while(not acertou):
        print(acertos)
        chute_letra = input("Digite uma letra ou palavra:")
        chute_letra = chute_letra.strip().upper()

        if(chute_letra in palavra_secreta):
            index = 0
            print("acertou! Na posição:{}", index)
            acertos[index] = chute_letra


    acertou = "_" not in acertos
    print("\n\n\n#####################################")
    print("#         fim de jogo               #")
    print("#####################################")

if(__name__ == "__main__"):
    jogar()
solução!

Agora vai :-)

Troque a linha

palavra_secreta = "Banana".upper

Por

palavra_secreta = "Banana".upper()

Não mexi na sua lógica em si, mas pelo menos com isso vc desenrola.

pronto, obrigado.