uma função no Python é basicamente um bloco de código reutilizável que você constrói uma vez você consegue utilizar ele várias vezes e é muito caracterizado pelo clássico Def Quando você vê um Def dentro de algum código que você esteja construindo ou que outra pessoa construiu saiba que ali ele tá criando uma função agora Como que funcionam Essas funções como que você cria elas de forma correta e qual é a grande vantagem é o que a gente vai falar agora vamos lá [Música] direto ao ponto galera função Como eu disse aqui no início do vídeo é
um bloco de código reutilizável ou seja algo que você construiu encapsulou que a gente costuma dizer ou seja você colocou ele dentro de uma função esse bloco de códigos essa série de instruções de linhas de comando que você escreveu ali e você vai usar ela uma vez duas vezes três vezes quantas vezes você quiser dentro do seu código Uma Outra vantagem que as funções dão também é de organização mesmo que você vai usar elas só uma única vez quer ver eu trouxe um exemplo para vocês dá uma olhada esse aqui é um exemplo de uma
automação que eu fiz aqui no canal de uma planilha em Excel basicamente era uma planilha com uma base de dados que tinham vários bairros e o que eu queria fazer era pegar as informações de um bairro e jogar numa aba específica ou informações de outro bairro em outra aba específica e de outro bairro em outra aba específica e esse aqui é o código inteiro sem usar funções Você concorda comigo que você batendo o olho aqui é meio difícil de você saber cada pedaço desse código o que que ele tá fazendo é meio confuso tem muito
código aqui escrito e tudo mais acontece o seguinte esse aqui é esse mesmo código só que usando funções Você pode achar ele ainda meio confuso só que repara o seguinte eu tenho uma função aqui que cria uma aba caso a aba não exista eu ten uma função aqui que transfere as informações de uma aba para outra a partir do momento que você entende isso você meio que ignora quando você tá olhando o seu código todo esse bloco daqui porque você sabe que esse bloco inteiro ele tem um único objetivo criar uma aba esse bloco inteiro
de código ele tem um único objetivo transferir as informações de maa para outro então seu código mesmo que você vai usar que você vai analisar é esse daqui que acaba sendo um código muito menor é muito mais simples Então você olha olha eu tenho o arquivo com com a base de dados eu tenho a aba dentro daquele arquivo de base de dados a última linha que tá cadastrada e para cada linha dentro do intervalo de linhas que tem ali dentro Eu vou pegar o bairro se o bairro não existir eu interrompo a minha execução se
ele existir eu crio essa aba e transfiro os dados paraa aba de destino e no final eu salvo o meu arquivo repara que quando você coloca Esses códigos dentro de funções fica muito mais fácil de você conseguir ler um código você pode de novo não entender o que tá AC sendo por trás da função criar aba Mas se você quiser entender você pode agora sim ah deixa eu ver na função criar aba o que ela faz E aí você vem e olha aqui o que ela tá fazendo repara como é que fica muito mais organizado
Beleza então agora vamos entender como que você faz para criar funções a estrutura de uma função é sempre essa daqui que eu destrincha para vocês você sempre vai colocar com um Def que vem de definir Então você tá definindo uma função Você tá criando uma função e a partir do momento que você criar uma função dali para baixo sempre você pode usar executar essa função então por exemplo eu vou criar aqui um exemplo que eu gosto de fazer muito que é um exemplo de calcular imposto imagina que você tá calculando o imposto sobre um produto
que a sua empresa vende e esse imposto ele pode ter uma regra simples uma regra complexa de como que você faz para calcular o imposto sobre um produto de acordo com o valor dele e tudo mais o fato é ele recebe essa função ela vai precisar receber um parâmetro que é o quê isso aqui não é obrigatório tem algumas funções que elas não vão ter parâmetro nenhum você simplesmente quer que essa função Execute um bloco de código então você pegou esse bloco de código todo e colocou dentro da função mas as funções elas dão essa
possibilidade para você você pode pegar um parâmetro uma informação e dar pra função nesse caso daqui o parâmetro vai ser o valor do produto que eu quero calcular o imposto por quê Porque de acordo com o valor do produto o imposto vai ser diferente então por exemplo se o valor do produto for menor do que R 1000 então ele tem 10% de imposto então o imposto é igual ao valor vezes 0.1 10% caso contrário se o valor do produto por exemplo for menor do que R 2.000 então o imposto ou seja esse produto é mais
caro então vou cobrar mais imposto dele então o imposto dele vai ser de 13% E caso contrário seja mais de de r$ 2000 o valor do Imposto Então vai ser de 20% Vamos colocar assim valor vezes 0.2 repara o seguinte essa função aqui ela faz seu objetivo ela recebe um valor como parâmetro e ela calcula qual que tem que ser o imposto sobre esse valor agora repara o seguinte nas funções você tem meio que duas opções você pode criar uma função que você só quer que ela Execute uma série de comandos Então eu quero que
essa função envie um e-mail pro usuário eu quero que essa função registre alguma coisa num banco de dados e assim vai ou então como esse caso daqui eu quero que essa função calcule uma informação para mim ou seja eu quero que essa função ela me dê alguma coisa como resposta porque eu não tô usando a função calcular imposto Quando você pensa quando você for usar ela quando você for usar ela dentro do seu código você não vai usar essa função calcular imposto só para calcular o imposto e não fazer nada com esse valor de imposto
Provavelmente você quer fazer alguma coisa com ele então o que que você pode fazer nas funções você pode no final da função depois de tudo que você fez você pode fazer um return de algum uma informação de alguma variável de algum número de algum objeto de qualquer coisa você pode pedir para essa função devolver alguma coisa para você como resposta então essa aqui é a forma clássica de você construir uma função repara tá bem nesse padrão que eu escrevi aqui para vocês ó Def espaço o nome da função e aí você então esse essa palavrinha
Def ela só serve para isso para dizer que você tá criando uma função dentro do seu código a partir do momento que você criou essa função com esse nome repara esse nome não pode ter espaço ali dentro não pode ter caracter especial nem nada a gente costuma criar nos nomes das funções sempre palavras em letra minúscula e separa as palavras por underlines Mas o importante é a função ela tem que ter um nome intuitivo as pessoas têm que bater o o olho nessa função e entender já pelo nome dela o que que provavelmente ela faz
então se você tem uma função calculada em imposto não chame essa função de função a não você pode fazer isso pode mas não é uma boa prática chame ela de calcul imposto porque ela uma função para calcular o imposto mesmo que você tem que escrever mais para isso é uma prática melhor tá E aí essa função Então você definiu esse nomezinho calcular imposto agora no seu código Sempre que você quiser calcular esse imposto você pode pegar por exemplo eu tenho aqui um produto um o o preço do produto um vai ser por exemplo de r$
500 se eu quiser calcular o imposto do produto um eu vou usar a função calcular imposto passando para ela o preço do produto um da mesma forma se eu tivesse aqui agora um preço de um produto 2 com um preço de r$ 500 eu posso simplesmente calcular o imposto do produto dois passando para ele também a mesma função calcular imposto você repara Como que você definir uma função facilita a sua vida porque você consegue fazer essa operação para vários e vários produtos em momentos diferentes do seu código aqui eu tô usando tudo no mesmo lugar
mas pensa que você pode estar criando um código com vários arquivos você pode num arquivo usar num lugar no outro arquivo no outro lugar no outro arquivo no outro lugar isso além de ficar muito organizado repara só batendo o olho nesse código aqui você sabe cara eu tenho o preço de um produto tô calculando o imposto dele preço de um produto calculando o imposto dele tá vendo e voltando aqui à estrutura da função você cria ela sempre com Def espaço o nome da função se essa função tiver que receber uma informação como parâmetro para ela
funcionar você vai passar aqui dentro o nome dessa informação a o nome da variável né que você vai associar essa informação se não tiver nada você simplesmente vai colocar assim então por exemplo se o imposto fosse fixo para todos os produtos todos os produtos vão ter imposto de R 200 você não precisaria passar isso daqui e você retornar aqui como resposta r$ 2 como padrão porque todos os produtos têm R 200 só que como o preço dos produtos Depende de alguma informação externa ou seja o o imposto Depende do preço do produto ele Depende de
alguma informação que não tá dentro dessa função calcular imposto quando isso acontece você passa como um parâmetro aqui essa informação porque para sua função funcionar ela precisa de uma informação externa a ela que é o valor o preço do produto e aí você cria toda a lógica dentro da sua função pode ser uma lógica simples como a gente fez aqui mas pode ser uma lógica super complexa repara que todas as linhas de código elas vão ter pelo menos um tabz inho para dentro aqui que é a indentação para dizer Para sinalizar o que que tá
dentro dessa função e no final se essa função tiver que te retornar alguma informação como resposta por exemplo se eu quisesse que essa função aqui ao invés de calcular o imposto fosse uma função de enviar imposto por e-mail e a função ela calculasse o imposto e no final aqui ao invés de retornar para mim como resposta ela enviar ela enviasse por e-mail o valor do Imposto repara essa função não precisa me dar nada como resposta essa função ela já fez tudo que ela tinha que fazer Ela enviou por e-mail aquele imposto ela fez tudo que
ela precisava fazer então ela não precisa te dar nada como resposta se você não precisa que ela dê nada como resposta você não precisa daquele return que eu coloquei aqui embaixo agora nesse nosso caso eu quero que essa função aqui consiga calcular o tem um control Z aqui para voltar tá eu quero que essa função consiga calcular para mim esse valor de imposto e me dê o valor de imposto como resposta porque lá no meu código eu vou querer ter o imposto do produto um e o imposto do produto dois o imposto do produto três
eu vou querer usar essa função várias e várias vezes e vou querer principalmente que a resposta que essa função ou seja esse cálculo do Imposto essa informação aqui que tá dentro da função eu vou querer usar ela fora da função Tá vendo Sempre você tem uma informação dentro da função que você quer usar ela fora da função essa função tem que retornar essa informação como resposta ela pode retornar uma informação duas 3 4 5 Quantas você quiser só você separar essas informações por vírgula aqui beleza mas nesse caso daqui era uma informação só e aí
nesse caso a gente tem o imposto dos dois produtos se eu printar para vocês aqui o imposto do produto um e printar aqui o imposto do produto dois vocês vão ver que a conta que ele tá fazendo aqui é correta que a nossa função tá funcionando e que a gente tem ó o produto um com R 500 de imposto e o produto 2 com R 3500 de imposto nos dois tá sendo aplicada a alíquota de 20% agora se o preço do produto um fosse de R 15.00 aí o imposto já I ser bem diferente porque
ó ele ia ser aplicado 13% então 13% x 1500 vai dar 195 e depois 3500 x 20% vai dar R 700 Então a nossa função tá funcionando tá adaptando para cada situação e assim que você cria uma função sempre que você precisar E é assim que essa palavrinha Def é usar sempre que você olhar essa palavrinha saiba que você em Python você tá sempre definindo uma função fechado espero que vocês tenham gostado Se quiserem que eu explique algum outro conceito do Python em mais det detalhes numa aula curta direto ao ponto com exemplos como essa
daqui deixa esse conceito aqui na descrição nos comentários porque eu tô sempre de olho e eu quero gravar mais vídeos como esse se você gostou do formato então me diz se você gostou do formato e me diz que mais que você quer que eu explique no Python nesse formato grande abraço m