Função por 'def'inição: A arte de programar com 'def' em Python
No cenário da programação, Python destaca-se como uma linguagem de fácil compreensão, aprendizado e que oferece uma diversidade de funcionalidades eficientes. Entre estas, podemos citar um dos principais pilares da linguagem, capaz de tornar o código mais eficiente e reutilizável, as funções. Este artigo tem como objetivo definir, exemplificar, desmitificar o que são.
Vamos utilizar uma analogia do dia a dia para mostrar a utilidade das funções. Considere a seguinte situação: acordar as 06:00 de segunda-feira a sexta-feira. Com o intuito de otimizar esse processo, é estabelecido uma rotina no despertador, configurando o alarme específico para esses dias e horário.
Esta comparação oferece uma perspectiva palpável sobre o propósito das funções. Elas funcionam como essas rotinas automáticas, permitindo-nos criar um conjunto de instruções que podem ser invocadas sempre que necessário. Em termos técnicos, função é um bloco de código reutilizável que executa uma tarefa específica, permitindo a organização e reutilização eficiente do código.
Realmente, à primeira vista, pode parecer um tanto complexo. No entanto, não se preocupe, a situação não é intimidadora quanto parece. A linguagem Python já contém algumas funções nativas essenciais, e é muito provável que já tenha utilizado algumas delas. Lembra-se do clássico “Hello world”? Pois bem, para exibir essa mensagem na tela, é utilizado a função print(). Desta forma, mesmo que não tenha notado, você já deu seus primeiros passos usando funções em Python.
Na imagem apresentada, temos um exemplo que ilustra quatro funções embutidas do Python. Notamos a presença das funções: len(), max(), min() e print(). A função len() desempenha a função de retornar o número de itens de um objeto. Por sua vez max() revela o valor do maior item do objeto, enquanto min() retorna o menor valor e, por fim print() exibe na tela o valor do objeto informado.
Esses são apenas exemplos das funções embutidas, mas para explorar a lista completa, você pode consultar o link https://docs.python.org/pt-br/3/library/functions.html e obter informações detalhadas sobre cada uma delas. Com estas quatro simples funções, não apenas simplificamos o código, mas também garantimos a capacidade de reutilizá-las sempre que necessário, o que torna ainda mais eficaz a manutenção.
Além das funções embutidas da própria linguagem, temos a liberdade de criar funções personalizadas conforme a necessidade. Ao incluir uma nova função, basta ter uma ideia clara de sua funcionalidade e seguir a estrutura padrão de definição, que compreende a declaração ´def´, nome da função, parênteses, parâmetro(s) quando necessário e dois pontos.
- A função deve começar na palavra reservada def.
- Em seguida, é atribuído um nome à função, aplicamos a mesma regra utilizada na criação de variáveis, ou seja, evitamos o uso de palavras reservadas da linguagem e seguimos as diretrizes estabelecidas para identificadores permitidos.
- Os parênteses que acompanham a definição da função podem estar vazios, indicando a ausência de parâmetros, ou conter argumentos que são fornecidos.
- O cabeçalho da função termina com dois pontos, seguindo a regra da linguagem.
- Em seguida, no corpo da função, as linhas seguintes apresentam uma indentação mais ampla contendo uma sequência de instruções.
- E finalmente, de maneira opcional, é adicionado a palavra reservada ´return´ com o intuito de retornar informação da função.
Como podemos observar, temos a capacidade de definir funções que não retornam nenhum valor específico, mas também podemos criar funções que retornam informações. E também, funções que possuem argumentos, mas também as que não possuem. Essa flexibilidade permite que adaptemos as funções conforme haja a necessidade.
Vale ressaltar que, os parâmetros especificam qual informação, se necessário, deve ser providenciada para que a função possa ser utilizada. Se houver mais de um argumento, podemos adiciona-los de duas maneiras:
- Posicional: Os argumentos são adicionados na mesma ordem em que aparecem os parâmetros correspondentes na definição da função.
- Nomeado: Independente da ordem, é especificado o nome do parâmetro ao qual se associa um argumento.
Para facilitar o entendimento, vamos considerar a criação de um aplicativo simulando um caixa eletrônico, onde funcionalidades como consultar extrato, depositar e sacar dinheiro estão presentes. Como poderíamos implementar?
Para começar, definimos três novas funções: ´consultar_extrato´, ´depositar´ e a ´sacar´. A função ´consultar_extrato´ tem como objetivo exibir na tela o valor atualizado. A função ´depositar´ solicita ao usuário um valor, aumentando posteriormente o saldo. Por fim, a função ´sacar´ solicita ao usuário o valor, debitando em saldo. Essas funções encapsulam operações específicas, tornando o código mais modular e reutilizável.
Vale ressaltar que, para que as funções sejam executadas, é necessário chamá-las. Se a função requerer parâmetros, é essencial fornece-los no momento da chamada. Essa prática assegura a execução adequada das operações garantindo a execução do aplicativo sem nenhum erro.
Podemos concluir que, estas funções permitiram modularizar o código, dividindo o programa em partes menores e mais gerenciáveis. Cada função realiza uma tarefa específica, facilitando a leitura, manutenção e reutilização do código. Além disso, o programa principal fica mais limpo e legível, concentrando-se nas escolhas do usuário.
Referência: