Tudo que você precisa saber para começar a utilizar funções em Python
Você executa algum bloco de comando mais que uma vez dentro da sua aplicação? Pois veja, esse é o momento de introduzir funções dentro de seu desenvolvimento em Python.

Para que você não precise copiar o código todas as vezes que necessite executar uma determinada operação, o ideal é agrupar as instruções em uma função, à qual é dado um nome e pode ser executada em diferentes partes do algoritmo, assim deixando a leitura do código muito mais intuitiva.
Função em Python é uma forma de escrever a sua lógica e utilizá-la em diferentes lugares no seu código, sendo possível inseri-la quantas vezes for necessário. Vamos verificar sua sintaxe:
Uma função é definida por def, conforme linha 1, em seguida é informado o nome que deseja para utiliza-la futuramente, junto dos argumentos entre parenteses. Na linha 2 recomenda-se adicionar comentários para documentação, utilizando três apóstrofos seguidos. Após isto, na linha 3 é informado os comandos a serem realizados, ressaltando a importância da indentação, que seria o espaço ao inicio onde é aplicado as instruções. Na última possuímos o retorno desejado pela função.
HANDS ON!

Para uma melhor compreensão, vamos definir que necessitamos juntar duas palavras várias vezes durante a construção de um algoritmo, com essas informações identificamos que é mais produtivo criar uma função, utilizando estes quesitos criamos o código abaixo:
Na primeira linha definimos o nome da função como “juntar”, e incluímos dois argumentos como “parte1” e “parte2”. Na linha abaixo desenvolvemos o retorno, somando as duas informações. Também já fizemos um teste, criamos a variável frase e nela utilizamos a função, passando os argumentos “Função” e “Python”, então recebemos o output “Função Python”. Realmente funcionou hein! Mas gora vamos aplicar em um caso mais real, digamos que é necessário definir o calculo de todos funcionários de uma empresa, para isso criei o seguinte algoritmo:
Conforme vimos anteriormente, definimos o nome e os argumentos necessários na primeira linha. Na segunda adicionamos um comentário para uma melhor compreensão do código. Entre as linhas três e seis definimos os comandos para calcular o salário. Mas caso possua um colaborador que tenha realizado horas extras? Pois bem, já prevemos isso na nossa função, entre as linhas sete e nove realizamos a equação das horas extras, e também já solicitando retorno na linha dez. Abaixo vamos ver o retorno da função com exemplos:
Na variável resultado, suponhamos que o colaborador trabalhou 40 horas e recebe R$ 20,50 por hora, a função já nos retornou com o salário recebido por ele. No segundo resultado este colaborador que trabalhou durante suas 40 horas e ainda realizou mais 10 horas extras, totalizando 50, como possuímos essa possibilidade em nossa função, já foi calculado gerando o resultado correto.
Função lambda
Uma das vantagens da linguagem Python é um amplo conjunto em estruturas de dados disponíveis ao desenvolvedor, e é muito importante o conhecimento das técnicas de desenvolvimento, hoje muitos profissionais deixam de utilizar a função lambda pelo simples fato de não entenderem como funciona exatamente. Essa expressão permite digitar funções sem nome, em apenas uma linha de comando, gerando um código mais limpo e mais efetivo. Para um melhor entendimento, vamos dar uma olhada em sua sintaxe:
A palavra reservada lambda define a função, esta é seguida de seu primeiro argumento, onde é definido seu parâmetro de entrada, o segundo argumento seria os comandos da função, note que o código ocupa somente uma linha.
HANDS ON!

Suponhamos que foi identificado em nosso algoritmo a necessidade de criar uma função para somar dois números, ou seja realizar uma operação de adição, então vamos aplicar lambda, acompanhe abaixo:
Criamos a variável “addNum” para realizar o cálculo, dentro desta atribuímos o termo lambda e passamos dois parâmetros - sendo eles x e y - para depois nos retornar x+y. Note que o código está inline, ou seja escrito somente em uma linha.
Verificando a diferença de uma função def para uma função lambda
A diferença entre as duas palavras reservadas é muito mais fácil do que aparenta, a def cria um objeto e atribui um nome a ele, onde lambda também cria o mesmo, porém o retorna como um resultado em tempo de execução.
Repare como a lambda nos proporciona flexibilidade, facilidade, legibilidade, menos linhas de código, entre outras vantagens. É o ideal para todas as situações? Com certeza não, sempre irá depender do nosso objetivo.
Como identificar a palavra reservada adequada
Agora vem a parte mais complicada deste assunto, em qual momento devo usar def e quando é possível utilizar lambda? É difícil sim, mas não é nenhum bicho de sete cabeças. O lambda é utilizado quando ao entendimento do desenvolvedor, irá simplificar e otimizar seu algoritmo, talvez o modo em que seja mais usado seja em funções que servem de parâmetros para outra função, pois fica claro a simplificação do código, por exemplo. Com certeza com um bom entendimento destes aspectos, você conseguirá desenvolver um bom trabalho colocando em prática algoritmos mais limpos, claros e ganhando produtividade.
Espero que você tenha compreendido o uso das funções, em breve postarei mais conteúdo a respeito deste assunto, com mais exemplos e HANDS ON! para práticas.
Grande abraço e até a próxima!
