Nesta lição você aprenderá sobre funções em Python. Já escrevemos código aleatório há algumas lições, mas precisamos aprender como escrever código organizado. Em outras palavras, podemos combinar nosso código solto em códigos menores pedaços de código gerenciável e sustentável. E esses pedaços de código são o que chamamos de funções. E uma grande vantagem de usar funções é que escrevê-lo uma vez, então o usaremos tantas vezes no futuro nossa aplicação. Então definimos nossa função armazenando todo o código nela pedaço. Então podemos reutilizar essa função chamando-a de qualquer lugar nossa aplicação. Na verdade, o termo que chama uma função pode ser substituído com o termo executando uma função ou invocando uma função ou executando uma função. Então basicamente todos significam a mesma coisa. E outra maneira de ver uma função é que ela é um contêiner que contém algumas linhas de código que executam um tarefa específica. E esse é um ponto importante a ser observado: as funções devem apenas faça uma coisa. Por exemplo, já trabalhamos e usamos funções em Python, como a função print e o tipo função. Essas funções fazem apenas uma coisa cada e é isso. A função print apenas imprime tudo o que passamos no parênteses. E a função de tipo apenas recebe um nome de variável e retorna seu tipo. Portanto, apenas uma tarefa específica por função. Eu também queria esclarecer um ponto-chave na terminologia, muitas vezes você ouvirá os termos funções e métodos. Você também pode ouvi-los sendo usados de forma intercambiável, mas há um leve diferença. Funções são o que discutimos até agora. Quanto aos métodos, eles também são funções, mas pertencem a uma determinada classe. Como ainda não discutimos classes ou objetos, por favor entenda por enquanto que se uma função não pertence a um classe, então é apenas uma função. No entanto, se a função pertencer a uma classe, então chame isso de método. Ambos são definidos da mesma maneira e têm a mesma aparência, mas nós os chamamos de função ou método, dependendo se eles são autônomos ou pertencem a alguma classe. Tudo bem, então é assim que uma função se parece em Python. Começamos com uma palavra-chave de reserva chamada def, que é a abreviação de definir ou definição porque estamos definindo uma função seguido por um nome de função. E neste caso o nome da função é add, então é seguido por um par de parênteses que pode conter itens, e esses itens são chamados de parâmetros. Esses parâmetros são então usados no código da função. Agora, algumas funções possuem parâmetros, enquanto outras não precisa deles, então eles são opcionais. E então esses parênteses podem estar vazios. Depois dos parênteses é seguido por dois pontos, que como já vimos, com loops e condicionais, os dois pontos significam que algum código recuado está surgindo e este recuado código é o corpo da função. E porque essas linhas de código são recuadas. Isso significa para o intérprete Python que eles fazem parte desta função. Finalmente, temos a instrução return. A palavra return em letras minúsculas é outro Python palavra reservada, assim como a palavra-chave def aqui. A instrução return é usada para especificar o que a função deveria retornar. E uma função pode retornar qualquer tipo de valor, incluindo strings, inteiros e até outras funções. Então, se olharmos para esta função específica, vemos que seu nome é add e leva dois parâmetros NUM um e NUM dois. Quando esta função é chamada, esses dois valores são passados como parte da chamada de função, e vemos esta chamada de função aqui. Chamamos a função digitando seu nome e transmitindo o que for necessário argumentos Observe a diferença de nome entre argumentos e parâmetros quando passamos itens entre parênteses durante um chamada de função, como esta linha, chamamos esses itens de argumentos. Mas quando definimos uma função e incluímos itens no parênteses, como aqui, são chamados de parâmetros. Então, por favor, esteja ciente desta distinção e entenda que algumas pessoas também os usam de forma intercambiável. Então chamamos a função aqui pelo seu nome e depois passamos dois argumentos, um dois e um quatro. Agora, o número de argumentos deve corresponder ao número de parâmetros, e se eles não corresponderem, então o Python irá gerar um erro. Portanto, neste exemplo, o valor dois será o valor do NUM um parâmetro e o valor quatro será o valor do NUM dois parâmetros. E uma vez que esta chamada de função é feita e os argumentos são passado, então a função é executada e executa o código no bloco recuado. E uma vez que essas linhas são executadas, chegamos à instrução return, que então retorna um valor para a instrução de chamada de função. Portanto, este valor de adição será retornado para esta chamada de função aqui embaixo. Agora, nem todas as funções retornam algo para a chamada de função. Portanto, nesse cenário, não precisamos de uma instrução return. Na verdade, todas as funções retornam alguma coisa. Mas quando não incluímos explicitamente uma instrução return, o A função Python ainda retornará algo, que é o palavra nenhum, que é algo que acontece em segundo plano. Em Python, funções que retornam algo são chamadas frutífero, enquanto funções que simplesmente são executadas e não retornam qualquer coisa é chamada de infrutífera. Tudo bem, deixe-me levá-lo para um notebook Jupyter que já tem todo esse código digitado para nós. E quando executo esse código, EU. Obtenha o resultado esperado. Quando executo este código, o interpretador Python começa em o topo, e a primeira coisa que encontra é uma definição de um função. No entanto, este código não será executado até que alguém o chame primeiro. Portanto, o interpretador Python pula a execução deste grupo de linhas por agora. Em seguida, ele continua seguindo as linhas do código e encontra isso primeira linha de código executável, que é apenas uma variável que eu atribuído um valor para uma chamada de função. Então chamamos essa função, chamada Add, e passamos o dois argumentos um dois e um quatro. Isso, por sua vez, vai para a definição desta função, armazena os valores de Dois e Quatro em NUM um e NUM dois parâmetros e, em seguida, insere e executa o bloco de código. Isso executa essas duas instruções de impressão e, em seguida, cria um novo variável chamada Adição e atribui a ela o valor de NUM um mais NUM Dois, que é dois mais quatro. Portanto, produz uma resposta de seis. Em seguida, ele retorna esse valor usando a instrução return. Então, esse valor é retornado para a função Call, que é aqui embaixo. Então agora esta chamada de função é seis e atribuímos este valor a a variável res que finalmente imprimimos nesta linha. Portanto, obtemos um seis na nossa saída. Agora, algumas coisas que podem dar errado com este código são, por por exemplo, não passamos o número correto de argumentos. Por exemplo, removerei o valor quatro da nossa chamada de função e execute este código novamente. Isso gerará um erro informando que a função Adicionar está faltando um argumento que está correto. Além disso, se eu chamar a função, mas usar um A maiúsculo do A minúsculo esperado para corresponder ao da função. Nome e depois execute-o, Eu vou. Obtenha um erro também. Então, por favor, tenha cuidado novamente com a forma como você nomeia e chama seu funções. Agora, faz parte das Melhores Práticas de Programação inclua um comentário logo acima da definição da função para explicar o que esta função faz. Então, em vez de percorrer o código linha por linha para entender o que faz, um comentário de uma ou duas linhas que explica isso função certamente ajudará no futuro, quando você ou alguém else analisa este código. Além disso, faz parte das Melhores Práticas de Programação deixar duas linhas em branco antes e depois da função. Esta função não possui nenhum código antes, mas sim depois. Você pode ver que deixei duas linhas em branco entre o retorno instrução e a próxima linha de código. Novamente, essas são apenas as melhores práticas de programação. Portanto, não é um requisito, mas é sempre aconselhável seguir melhor Práticas. Finalmente, o código de chamada da função deve vir depois da função foi definido. Por exemplo, colocarei esta linha de chamada de função antes do função tem sido. Definido e. Então eu vou correr. Isto. E recebo um erro porque estou chamando uma função que não ainda não foi definido porque o Python lê o código sequencialmente começando do topo. Nesta lição, você aprendeu sobre funções em Python e fique ligado na próxima lição, onde você aprenderá sobre listas. Obrigado por assistir.