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

Função return

Eu não entendi muito bem a função* return*.

Ao pé da letra, entendi que ela "retorna" um valor. Mas como assim? (explique como se estivesse explicando pra pessoa mais idiota do mundo, por favor)

Se eu retorno um valor, não estou ignorando o novo valor aplicado?

def chute_jogador():
    chute = input("Qual letra? ")
    chute = chute.strip().upper()
    return chute
2 respostas

Boa tarde Noemi Harumi.

Seguinte, pegando essa sua estrutura de chute_jogador.

def chute_jogador():

Neste ponto voce está pedindo para que usuário informe uma letra, que pode ser maiúscula ou minúscula.

         chute = input("Qual letra? ")

Neste ponto voce está sobrescrevendo a variável 'chute', fazendo ela receber a informação inserida pelo usuário, removendo os espaços em branco e transformando tudo para maiúsculo.

         chute = chute.strip().upper()      

Este return vai devolver o 'chute' com a informação inserida pelo usuário e já tratada.

         return chute

Desssa forma, qualquer outro método pode chamar o chute_jogador para fazer utilização dessa função. Assim essa função chute_jogador() só vai ser executado quando for chamado em algum método.

solução!

Olá Noemi, tudo bem? Espero que sim!

O return é o resultado final de uma função, após a realização de todo o bloco de código dentro da função.

Ao escrever return chute, o valor final da função será o valor que está armazenado na variável interna chute, que foi definida através da primeira linha dentro da função, usando o input().

Caso seja definida uma função sem o return, o valor final da função será do tipo None.

Vou deixar aqui um exemplo de código para ficar mais simples o entendimento:

def chute_jogador():
    chute = input("Qual letra? ")
    chute = chute.strip().upper()
    return chute

letra_chute = chute_jogador()

Na última linha, quando atribuímos a função chute_jogador() à variável letra_chute, essa variável receberá o valor do retorno da função, ou seja, receberá o chute devido ao return chute dentro da função.

def chute_jogador():
    chute = input("Qual letra? ")
    chute = chute.strip().upper()

letra_chute = chute_jogador()

Caso a função estivesse como na forma acima, a variável letra_chute ficaria com valor None. As funções com o return na maioria dos casos serão utilizadas no momento de atribuir a uma nova variável, assim como foi feito com letra_chute.

As funções sem return são utilizadas de maneira direta, sem atribuir a uma variável, da seguinte forma:

def chute_jogador():
    chute = input("Qual letra? ")
    chute = chute.strip().upper()
    print(chute)

chute_jogador()

Nesse caso, a função é definida e logo depois é utilizada, sem atribuição a uma variável e o bloco de código dentro da função será executado, inclusive o print(), apresentando o resultado na tela.

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!