Do que se trata o conteúdo? É a explicação sobre como definir, utilizar e organizar funções em Python.
Principais assuntos (exemplos):
def (ex.: def f(x):).f(4)).return devolve um valor, print apenas exibe na tela.Ponto de maior atenção: Entender a diferença entre return e print e garantir que a função seja definida antes de sua primeira chamada.
Conclusão: Funções permitem modularizar o código, reutilizar trechos de instruções e facilitar a manutenção e a legibilidade dos programas.
Apresenta a necessidade de agrupar instruções que se repetem e como as funções atendem a esse requisito.
Usa‑se a palavra‑chave def, seguida do nome da função, parênteses com os parâmetros e dois‑pontos. Exemplo:
def f(x):
Conjunto de instruções indentadas que executam a lógica desejada. Pode incluir variáveis temporárias e o comando return para devolver o resultado.
Parâmetros são as variáveis listadas na definição; argumentos são os valores passados na chamada. Exemplo: f(4) – 4 é argumento para o parâmetro x.
return devolve um valor que pode ser usado em outras expressões; print apenas exibe o valor e não pode ser reutilizado.
Implementação:
def f(x):
res = x**2 + 1
return res
Função que recebe n e devolve n! usando loop ou recursão.
Função com dois parâmetros (preco e taxa) que retorna preco * (1 + taxa/100).
O interpretador executa o código de cima para baixo; portanto, a função deve ser declarada antes de sua primeira chamada.
Reforça a importância da modularização, reutilização e manutenção facilitada.
Resposta correta: A) def
Em Python, a palavra‑chave def indica o início da definição de uma função.
calcula_juros(200, 15) para a função def calcula_juros(preco, taxa), qual parâmetro recebe o valor 15?
Resposta correta: B) taxa
O segundo parâmetro da função, normalmente chamado taxa, recebe o valor 15.
return e outra que usa print?
Resposta correta: C) return permite usar o resultado em outras expressões
Um return entrega o valor ao código que chamou a função, possibilitando seu uso posterior; print apenas exibe o valor.
print(f(5))
def f(x):
return x*2
Resposta correta: B) NameError em tempo de execução
O interpretador tenta executar print(f(5)) antes de conhecer a definição de f, gerando NameError.
O Lá pessoal, bem-vindos novamente nossa disciplina de algoritmos e programação de computadores 1 para a Universo.
Vamos dar continuidade a nossas videóulas, essa é a videóla de número 13, onde a gente vai ver um pouquinho sobre definição de funções.
É importante, pessoal, esse tópico, porque quando a gente crie uma função, a gente consegue, de certa maneira, modularizar melhor o nosso programa.
Então, existem algumas tarefas, alguns conjuntos de instruções que você vai executar com o seu programa, que devem ser realizados várias vezes.
Então, ao invés de você repetir essas comandos em todas as vezes que você precisa executar aquela tarefa, você pode colocar essas instruções dentro de uma função e chamar aquela função nos momentos que você precisa delas.
Então, a gente vai ver como que Python disponibiliza meios de você definir as suas próprias funções.
A gente viu até essas últimas aulas como que a gente usa funções pré-definidas.
Então, a gente viu alguns usos de funções como a função max, a função min, a função SQT.
Então, são funções que são já definidas.
Algumas delas você precisa importar bibliotecas diferentes da biblioteca padrão do Python como a SQT, mas outras você não precisa importar, porque elas já estão disponíveis para o uso.
E aí, a gente vai ver, então, nessa aula de hoje, como que o programador pode criar as suas próprias funções, de modo que, quando não existe uma função já definida na biblioteca padrão, o programador cria sua própria biblioteca com suas próprias funções e aí, ele pode utilizar essas funções tanto no seu programa atual como em outros programas também que ele no futuro pode virar desenvolver.
Então, as funções são úteis quando a gente precisa executar uma sequência de instruções várias vezes em diferentes partes do programa.
A funções também permitem modularizar aquele programa, porque vai facilitar com que a gente consiga reutilizar certas implementações e também favorecer a manutenção do código uma vez que o programa está mais modularizado.
Bom, então, a gente vai ver um primeiro exemplo, que é o suponho que a gente tenha uma função matemática fdx, que é definido como x² mais 1.
Então, essa seria a função matemática, e eu até coloquei de propósito, da uma função matemática para poder fazer essa analogia, então, com as funções definidas na programação, que na verdade é mais ou menos a mesma coisa, porque você passa como parâmetro aqui, da tua função matemática, uma variável que, no nosso caso das funções de programação, a gente vai chamar elas essa variável de parâmetro.
Então, olha só que a definição dessa função fdx, então, existe uma certa syntax, que a gente tem que seguir, no caso da linguagem Python, a gente começa a definição de uma função palavra reservada df, depois o nome da função, e aí entre parâmetros o parâmetro que a gente vai passar para essa função.
Reparem que a implementação aqui embaixo da função é basicamente aquilo que a gente já viu nas últimas alas, então, na primeira linha, eu tenho uma expressão malitmética, que é uma potência x elevada ao quadrado, que é isso daqui, mais um, que é o que está aqui em seguida, e esse resultado eu atribuo numa variável o ress, e depois, aqui embaixo, tenho o retorno desse valor que foi calculado.
Esse retorno, que é o retorno, a palavra chave retorno, serve para a função retornar para fora, para quem está chamando aquela função, o resultado da execução daquela função.
Então, na verdade, quando a gente chama aquela função, então, lá no nosso interpretador, a gente usa o nome da função que a gente escolheu, que é o f, passa entre parâmetros do valor do parâmetro, que aqui a gente chama de argumento.
A função vai ser executada aqui com esse valor dx, recebendo o valor que a gente passou lá na chamada.
Então, aqui dentro, o x vai receber 4, e aí vai ser executado 4 ao quadrado, mais um, que vai dar 17, que é o que vai ser retornado lá para fora.
Lá fora, pessoal, o interpretador, como interpretador chamou a função f sem nada antes, sem fazer nenhuma tribuição, sem usar essa função f no mais pressão nem nada, o interpretador ele impreme, mostra o resultado da execução da função lá na tela para o usuário.
Vamos ver um exemplo, vamos ver esse exemplo na verdade sendo executado na prática.
Então, aqui eu tenho o meu programa, meu arquivo, eu estou chamando de exemplo 0 1.
pi, eu vou definir então a minha função aqui em cima, então, a gente usa a palavra reservada df para falar, para a linguagem que a gente está definindo uma função, o nome da função f, e entre parênteses, o parâmetro que vai receber é o valor, o argumento lá na chamada.
Dois pontos, quer dizer, vou começar a minha função do enter, então, aqui, tem que ter uma identação aqui em bá, dentro para falar que estou implementando coisas dentro da função f, lá eu vou definir uma variável que vai receber o x² mais 1.
E aí, depois, eu vou dar um return, quer dizer, o resultado dessa expressão arithmetic aqui em cima está sendo retornado para fora da função, quer dizer, esse valor vai ser repassado para aquela entidade, aqui, chamou a função.
Então, o que eu vou fazer aqui? Eu vou chamar essa função aqui embaixo, lá no meu interpretador, eu vou chamar o f de 4, aqui em cima, eu já estou definindo a minha função entre interpretador, e aí, aqui, eu executo a minha função passando um como o argumento dessa função o valor 4, esse 4, pessoal, vai ser recebido aqui por essa variável x, que a gente especificou aqui entre parênteses, então, o que a gente coloca entre parênteses, aqui, a gente chama de parâmetro, e aqui, o que a gente coloca entre parênteses aqui na chamada, a gente chama de argumento.
Eu posso chamar essa função f com diferentes valores, então, para 5, por exemplo, o valor vai ser 26, para 10, o valor vai ser 101, e assim por diante, então, você pode chamar essa função várias vezes com diferentes argumentos, e a implementação vai ser a mesma única coisa que vai mudar, é o valor do parâmetro, que é a cada chamada, você pode passar um valor diferente.
Então, aqui, só para a gente ficar mais claro, o formato da função, o formato é da definição de função, então, a gente tem a palavra reservada df, aqui a gente passa o nome da função, isso daqui, pessoal, tem que seguir as mesmas regrinhas que a gente viu lá para a definição de nomes de variáveis, então, se vocês não lembram, dei uma olhada lá naquelas regrinhas, quando a gente fala sobre variáveis, a gente tem que seguir aqui, a obdc, aquelas regras para poder escolher nomes de funções, aí, entre parênteses, a gente vai colocar os parâmetros da função, pode ser mais de um, porque a gente colocou no exemplo anterior apenas um parâmetro, que foi o x, mas a gente pode escolher, pode colocar vários parâmetros, aí, separando eles por vírgula, e aqui embaixo, a implementação daquela função, a gente coloca as instruções com indentação, tá? A importante essa indentação aqui, porque é o que vai informar a linguagem Python, que aquelas instruções estão dentro daquele bloco de definição de função, a última linha, pessoal, da definição de função, eu coloquei aqui um retâneo, um retâneo, é opcional, você pode escolher retornar ou não retornar um valor para fora da função, a gente vai ver um exemplo aqui, a pouquinho de cada tipo desse daí, mas esse valor aqui vai ser algo que vai ser encontrado por meio dessa execução dessas instruções anteriores, que vão encontrar um valor, que seria o objetivo da função, e esse valor é o que você vai retornar ali para fora, então, por exemplo, só tem uma função para controlar o fatorial de um número, n, por exemplo, né, n fatorial, então, provavelmente o teon seria o teu parametro, quer dizer, o valor de entrada da função, aquilo que você vai colocar aqui entre parênteses, e o n vezes n menos 1 vezes n menos 2 vezes n menos 3 até 1 vai ser esse valor aqui que vai ser retornado para fora, quer dizer, o fatorial do número, tá legal? Mais um exemplo aqui, agora, é de uma função com que recebe dois parametros, então, eu tenho uma função que calcula o preço de um produto que foi atualizado pela taxa de juros, então, olha só a implementação, eu tenho df, que é a palavra reservada, juros é o nome da minha função, tá? Então, eu chamei de juros o nome da função, quer dizer, é o nome que eu vou chamar depois lá no meu interpretador em algum outro lugar, e entre parênteses, eu estou passando aqui dois parametros, que é o preço e é a taxa de juros, tá? Aí o resultado, que é o preço vezes 1 mais juros dividido por 100, quer dizer, eu estou atualizando, não, estou calculando um novo valor para o preço, que é o valor do preço vezes o taxa de juros aplicado a esse preço, e aí que eu tenho a minha chamada, tá? Então, olha só que é o nome da função, que é aquilo que eu defini aqui em cima, e eu tenho aqui os dois argumentos da função, que é o 10, e o 50, aqui, pessoal, é importante que seja feito essa, importante, gente lembrar que essa atribuição é feita pela ordem que aparece, então 10 vai ser atribuído ao parâmetro preço, e o 50 vai ser atribuído ao parâmetro juros, tá? E a execução retorna aí, ou 10 reais, por exemplo, aplicado uma taxa de 50% de juros, que vai me dar 15, tudo bem? Bom, aqui é um exemplo, pessoal, onde eu mostro para vocês a diferença entre duas funções, que, a princípio, elas realizam a mesma tarefa, quer dizer que calcula x² mais 1, só que na função f, eu estou retornando esse resultado para fora, e na função g, eu estou imprimindo esse resultado na tela, qual que a diferença entre as duas, aqui que vai mudar, porque, que no interpretador, se eu chamo f de 2, o resultado vai dar 5, mas se eu chamo g de 2, isso aqui também vai me dar 5, então qualquer diferença, qual que eu que muda entre uma função e outro? O que muda, pessoal, é que nesse primeiro caso, a gente consegue usar essa função f dentro de uma expressão aritimética, por exemplo, enquanto que aqui essa função acaba ficando limitada apenas a imprimir aquele resultado na tela, então, se você quiser se pegar essa função f e ainda multiplicar ela por algum outro número, por exemplo, você teria que usar a função f, se você usar a função g, você não vai conseguir multiplicar, porque a função g ela simplesmente imprimi na tela o resultado, e você não consegue multiplicar uma impressão de um valor por um número, então você tem que multiplicar um número por outro número, então, uma vez que você imprimi aqui, você não consegue depois usar esse valor numa expressão, aqui você consegue, porque isso aqui vai ser retornado para fora da função, então é como se f de 2 fosse substituído pelo número 5, e aí você poderia, por exemplo, ter mais uma continuação dessa expressão, por exemplo, mais 2, e aí o resultado ficaria 5 mais 2, 7, então o resultado ficaria 7 aqui embaixo, aqui não, aqui você não consegue fazer nada com relação a essa chamada g de 2, porque a função g simplesmente vai imprimir ela, está legal? Bom, a gente tem também que tomar cuidado com a ordem de definição das funções, então quando a gente define uma função, é importante sempre definir elas antes de executar na ordem sequencial de cima para baixo do teu arquivo ponto p, então por exemplo, se eu tenho esse código aqui no meu arquivo, isso aqui vai te dar erro nessa primeira linha, porque, porque a função f de x ela está definindo, está sendo definida na linha de baixo, e aí nessa linha de cima, o interpretador ainda não sabe que essa função foi definida, então você primeiro precisa definir a função e depois você usa ela, então é só colocar a definição antes do prente da função f, já nesse código aqui, pessoal, isso aqui já não vai acontecer, porque, porque apesar da função f está sendo definida aqui embaixo, e eu estou usando o f aqui em cima, essa esse código aqui de cima não está executando nada, ele está simplesmente definindo a função g, então como não está executando, só está definindo a função g, então a linguagem permite que você deixe para implementar a função f depois, só que a única regra é que a execução de g tem que ser precisa ser feita após a definição de f, está legal? Tudo bem, pessoal, essa foi a nossa aula sobre definição de funções, foi uma aula bem introduutória, a como que a gente define funções, ainda a gente vai voltar a assunto de funções nas próximas visualas, essa video aula foi simplesmente para a gente entender que é possível, a gente definia as nossas próprias funções, e como funciona, o que são argumentos, o que são parâmetros, mas a gente vai retomar esse assunto aí, mais para frente no nosso curso, então a gente se vê numa próxima oportunidade e obrigado e até mais!