Bem vindo de volta.
Neste vídeo, quero falar sobre um conceito importante, que é o retorno.
É uma palavra-chave em Python que veremos muito ao trabalhar com funções.
Então, vamos dar uma olhada.
Se eu disser que quero criar uma função chamada soma, que, a propósito, já existe no Python, mas vamos
criar a nossa própria e direi número um para o número um.
E número dois, bem, nossa função soma vai somar nove um mais num dois, uma função simples e agradável.
Agora, se eu executar alguns com os números quatro e cinco, adivinhe o que está para acontecer?
Eu vou bater em correr.
E não acontece nada, quer dizer, pode não ser surpreendente para você, pois não estamos imprimindo nada, certo.
Mas e se eu imprimir aqui?
Isso vai mudar?
Vamos ver.
Hmm, não recebo nenhum.
É isso que você esperava e não vimos nada antes.
Certo, quero dizer, lembra quando tínhamos uma lista, digamos um a três, e depois fizemos algo
para esclarecê-la?
No nosso Ed, ele nos deu essa flecha e disse nada, e falamos sobre essa ideia de em listas,
algo como limpar muda a lista real e limpa tudo e esvazia a lista.
Mas não retorna uma nova lista.
Ele apenas modifica a lista existente, mas em vez disso apenas retorna nenhum para nós.
Bem, as funções são assim.
Eles sempre têm que devolver algo.
E quando eles não retornam nada como se não houvesse nenhuma palavra-chave return aqui, ele automaticamente retorna nenhum.
Então, se não tivermos algo como voltar aqui, sempre não retornará nada.
Mas se adicionarmos return, isso dirá assim que chegarmos a, tipo, hey.
Quero que você saia dessa função e, ao sair dessa função, quero que você retorne o que quer que essa
expressão nos forneça, se eu clicar, execute.
Eu ganho nove.
Se mudarmos para 10.
Mais cinco, temos 15.
E esta é uma boa regra geral com funções, porque funções podem fazer duas coisas, certo?
Um, pode retornar algo.
Portanto, no final da função, seja o que for, após a função ser executada, retornamos algo
Nunn ou algum tipo de valor, algum tipo de tipo de dados, ou podemos ter uma função que não
retorna nada, mas talvez modifique algo.
Então, por exemplo, eu poderia imprimir.
Oi.
E se eu tivesse corrido aqui.
Eu retorno nenhum porque não tenho essa instrução de retorno, no entanto, minha função faz algo que ela modifica.
Bem, a aparência desse imposto, certo, um príncipe alto para nós.
Portanto, uma função modifica algo em nosso programa ou retorna algo.
E este é um tópico bastante avançado que abordaremos
mais tarde, quando falarmos sobre programação funcional, mas uma boa regra com funções é que uma função deve fazer algo muito bem.
E geralmente uma função deve retornar algo.
Agora, isso não significa que qualquer função que pode fazer várias coisas ou qualquer função que não
retorna algo seja ruim, mas geralmente é uma boa prática tornar seu código simples e legível, ter essas
duas regras.
Por exemplo, aqui, se eu tiver impressão e adição, irei, esta função está fazendo várias coisas.
É uma preocupação com a impressão e também com alguma coisa.
E a definição dessa função é chamada de alguns.
Quer dizer, se eu não soubesse ou não visse isso e tudo o que fizesse fosse rodar um pouco, acho que imprimir
muito seria uma surpresa porque o nome realmente não descreve o que faz.
Quer dizer, estou esperando que isso aconteça em algum momento.
Por que meu programa está dizendo oi?
Então, queremos ter certeza de que nossa função faz uma coisa e apenas uma coisa realmente?
Bem, porque como veremos mais tarde, podemos combinar e executar diferentes funções juntos.
E também queremos ter certeza de que retornamos algo, porque, dessa forma, o que podemos fazer é
realmente atribuir esse valor de retorno a uma variável.
Por exemplo, posso dizer que o total é igual a cerca de 10.
Cinco.
E como essa função retorna algo e quando é concluída, a execução terá 15 como valor, é a mesma
coisa que estamos fazendo aqui.
E aqui está a parte legal, agora posso executar talvez uns 10.
Mais total.
Agora, vamos examinar um por um.
Eu defino minha função, o interpretador Python vai dizer, tudo bem, eu sei o que alguns são agora que
você definiu.
Vou guardar na memória.
Vai continuar, vai até a linha sete.
E vai dizer, ei, eu quero um total variável e quero que essa variável total seja igual a cerca de 10
cinco.
E antes mesmo de atribuir qualquer coisa ao python total, o interpretador vai dizer o quê?
Alguns novamente.
Oh, eu me lembro aqui.
Está na memória, OK, em alguns vou dar-lhe os argumentos 10 e cinco.
Então, ele vai executar essa função.
Assim que terminarmos este colchete de fechamento, ele irá para o sol.
Vai dizer, ei, ninguém vai ser igual a dez.
Ei, o número dois vai ser igual a cinco.
Agora vamos para a linha dois e ela dirá, ei, quero que você some dez mais cinco porque sei o que são
essas variáveis.
E quando você terminar com isso e isso virar 15, quero que você volte.
Então, o interpretador Python, finalmente, quando terminar de chamar alguns, dirá, ei, atribua o valor
de 15 à variável total e então irá para a próxima linha.
Ei, eu quero imprimir algo.
O que você quer imprimir?
Bem, eu quero imprimir isso.
Vai dizer, ei, o que alguns eu sei o que está acontecendo aqui.
Eu tenho isso na memória.
E, de novo, vai dizer dez.
E então o próximo argumento será total.
Ei, o que é total?
Deixe-me ir à memória e descobrir.
Oh, são 15.
Então é como dizer 50.
E esse é o poder das funções, certo, sou capaz de retornar coisas e atribuí-las a variáveis e
chamá-las assim e posso continuar executando-as se quiser.
Se eu quiser tornar isso ainda mais simples, posso ir.
Alguns, em vez do total, estarão bem aqui.
E olhe isso agora.
Eu tenho tudo em uma linha e se eu clicar em executar.
Novamente, ainda funciona.
OK, mas e se fizermos algo assim?
E se eu disser definir alguns e então eu digo definir aqui outra função e esta função leva o número
um e o número dois.
E aqui, finalmente retornamos o número um e o número dois.
Hmm, vamos testar isso.
O que você acha que acontecerá?
Bem, primeiro, digamos que o total é igual a cerca de 10 mais 20.
E então vou imprimir o total.
Se eu clicar, corra.
Eu não recebo nenhum.
Agora, por que isso é óbvio para você, porque aqui estou dizendo, ei, quero que você defina
algo e o que faremos com a função?
Bem, dentro daqui, vou definir outra função.
Mas essa instrução de retorno não é executada.
Certo, porque tudo o que estamos fazendo dentro deste bloco, este bloco de código.
É esta parte que estamos definindo a função, mas nunca estamos chamando outra função.
Portanto, isso não retorna nenhum.
E perdemos a capacidade de chamar essa função.
Então, como podemos resolver isso?
Uma maneira é voltar, certo?
Então, no final aqui, temos que nos certificar de que o recuo está correto e vamos retornar outra função.
Portanto, vamos adicionar return e ver o que acontece aqui.
Se eu clicar, corra.
Tudo bem, eu entendi essa função agora, então o total vai ser igual a essa função que retornamos e está na
memória.
OK, mas não estou obtendo o resultado que desejo, certo?
E por que isto?
Porque, embora não estejamos chamando essa função, existem algumas maneiras de fazermos isso.
Podemos fornecer os parâmetros ou os argumentos aqui.
Então, digamos 10, 20.
E se eu clicar, corra.
Eu ganho 30 ou se quisermos manter tudo o que dermos aqui, posso simplesmente dizer outro funk.
Então, se dermos o número um e o número dois e eu clicar em executar.
Ei, olha só, eu ganho 30.
Agora, esse vídeo você pode ter que assistir várias vezes, porque ele estica um pouco a
sua mente e, para ser honesto, essa função não é muito boa porque está bem, é muito confusa.
Sua função deve ser fácil de entender.
Então, podemos querer mudar isso um pouco, talvez em vez de termos os mesmos nomes de parâmetros apenas para
esclarecer isso.
Talvez possamos dizer e um e e dois.
E então aqui fazemos.
E um mais e dois para esclarecer que, quando retornamos essa outra função, estou usando os parâmetros número um
e dois que chamamos aqui.
Porque essa definição de função realmente não se importa com o que essas coisas são.
Ele só se importa quando outra função é chamada.
Agora, se você precisar pausar o vídeo e olhar para isso e talvez praticar um pouco, isso
é completamente compreensível.
Mas eu queria mostrar a você o poder do retorno.
Você pode ter funções aninhadas da mesma forma que faria com condicionais, mas deve ter cuidado
para que sua função retorne algo, caso contrário, não retornará nenhum.
E na maioria das vezes você vai querer retornar algo de uma função para que possamos fazer
algo assim, onde atribuímos a uma variável para que possamos usá-la posteriormente em nossos programas.
Te vejo no próximo por.
Uma última coisa, uma palavra-chave return sai automaticamente da função para que aqui, se eu adicionar outro
trecho de código como imprimir, alô?
Ou talvez até devolver cinco aqui, você vê que ainda é válido, mas se eu executar isso.
Ainda consigo 30 porque o interpretador nunca chega às linhas cinco e seis, porque assim que retornamos
algo de uma função, ele sai dessa função.
E a razão pela qual esta parte não sai da função é porque, lembre-se, dentro desta função,
estamos definindo.
Portanto, não estamos realmente executando esta parte.
Estamos apenas dizendo, ei, quando vemos outra função surgindo em nosso código, sabemos o que é,
mas não vamos executá-la.
Então vai ficar assim.
E assim que vir a instrução return, quando esfriar, vai dizer, tudo
bem, estou saindo dessa função com esse valor.
Apenas um pouco alerta.