Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

por que não foi necessário usar return na função marca_chute_correto?

if(chute in palavra_secreta):
            marca_chute_correto(chute, letras_acertadas, palavra_secreta)
        else:
            erros +=1
            desenha_forca(erros)
        enforcou = erros == 7
        acertou = "_" not in letras_acertadas
        print(letras_acertadas)

def marca_chute_correto(chute, letras_acertadas, palavra_secreta):
    index = 0
    for letra in palavra_secreta:
        if (chute == letra):
            letras_acertadas[index] = letra
        index += 1

Na função marca_chute_correto, por que ao passar o argumento letras_acertadas não foi necessário usar um return do tratamento dentro da função? Ao passar um argumento, o valor da variável não é atualizada somente dentro do bloco?

1 resposta
solução!

Olá Eduardo, Tudo bem?

Não é necessário o return porque o Python trabalha com referências. Logo, ao passar o letras_acertadas para o método marca_chute_correto, você está passando uma referência para o objeto original.

No caso, a confusão se dá pelo fato de que uma variável modificada no escopo de uma função não tem o seu valor alterado no contexto global, a menos que definido desta forma.

Porém, no caso, letras_acertadas, chute e palavra_secreta são parâmetros da função e não variáveis.

Caso ainda fique alguma dúvida, me avise que tentarei ajudar. Caso a resposta solucione sua dúvida, não se esqueça de marcar ela como solução =)

Cussa

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