2
respostas

A função não está funcionando!

Boa noite, Minha função para as letras acertadas não está funcionando e está aparecendo esse erro que coloquei mais abaixo. Antes funcionava, mas com a incrementação das funções está dando erro, mesmo colocando como estava antes.

função:
def inicializa_letras_acertadas():
    return ["_" for letra in palavra_secreta]

Erro:
Traceback (most recent call last):
  File "/Users/akiraprestes/PycharmProjcect/pythonProject2/forca.py", line 30, in <module>
    letras_acertadas = ["_" for letra in palavra_secreta]
TypeError: 'function' object is not iterable
2 respostas

Oi Ana. Preciso de um pouco mais de contexto. Teria como mostrar onde a palavra_secreta está sendo definida? Parece que ela está sendo definida como uma função, de acordo com a mensagem de erro.

Eu fiz uns testes locais e tive os seguintes resultados:

def palavra_secreta():
    return 'aaa'


def inicializa_letras_acertadas():
    return ["_" for letra in palavra_secreta]

inicializa_letras_acertadas()

# File "aaa.py", line 6, in inicializa_letras_acertadas
#    return ["_" for letra in palavra_secreta]
# TypeError: 'function' object is not iterable
palavra_secreta = 'aaa'


def inicializa_letras_acertadas():
    return ["_" for letra in palavra_secreta]

print(inicializa_letras_acertadas())
# ['_', '_', '_']

pelo contexto do erro palavra_secreta esta definido como uma função.

por segurança dentro da função inicializa_letras_acertadas coloca um if/else para saber se tem valor na variável palavra_secreta:

def inicializa_letras_acertadas():
    if palavra_secreta:
       return ["_" for letra in palavra_secreta]
   else:
         print("erro! variável não inicializada")

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