Fiquei com uma dúvida entre 2 funções do exemplo:
a primeira inicializa_letras_acertadas
#Código omitido
letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
print(letras_acertadas)
#Código omitido
def inicializa_letras_acertadas(palavra):
return ["_" for letra in palavra]
ela recebe a palavra_secreta como parametro cria a lista e retorna a lista para a variável letras_acertadas
e a função marca_chute
#Código omitido
chute = pede_chute()
if (chute in palavra_secreta):
marca_chute_correto(chute, letras_acertadas, palavra_secreta)
#Código omitido
def marca_chute_correto(chute, letras_acertadas, palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute.upper() == letra.upper()):
letras_acertadas[index] = letra
index += 1
ela recebe chute, letras_acertadas, palavra_secreta a variável é manipulada dentro da função, mas a função não retorna letras_acertadas e o restante do código consegue visualizar essa alteração.
Não poderíamos fazer assim, e não ter o retorno na função?
#Código omitido
letras_acertadas = []
inicializa_letras_acertadas(letras_acertadas, palavra_secreta)
print(letras_acertadas)
#Código omitido
def inicializa_letras_acertadas(palavra):
letras_acertadas = ["_" for letra in palavra]
já testei o código acima e printou "[]"
tem alguma diferença sutil nessas 2 implementações?