Dominando Funções em Python: Sintaxe, Tipos e Exemplos Práticos
Funções em Python
Neste artigo, você aprenderá sobre funções, o que é uma função, a sintaxe, componentes e tipos de funções. Também aprenderá a criar uma função em Python.
Vídeo: Introdução a Funções em Python
O que é uma função em Python?
Em Python, uma função é um grupo de declarações relacionadas que executa uma tarefa específica.
Funções ajudam a dividir nosso programa em pedaços menores e modulares. À medida que nosso programa cresce, funções o tornam mais organizado e gerenciável.
Além disso, evita repetição e torna o código reutilizável.
Sintaxe de Função
def nome_funcao(parametros): """docstring""" declaração(ões)
Acima mostrada é uma definição de função que consiste nos seguintes componentes.
- Palavra-chave
defque marca o início do cabeçalho da função. - Nome da função para identificar unicamente a função. Nomenclatura segue as mesmas regras de identificadores em Python.
- Parâmetros (argumentos) através dos quais passamos valores para uma função. São opcionais.
- Dois-pontos (:) para marcar o fim do cabeçalho da função.
- String de documentação opcional (docstring) para descrever o que a função faz.
- Uma ou mais declarações Python válidas que compõem o corpo da função. Declarações devem ter mesmo nível de indentação (geralmente 4 espaços).
- Declaração
returnopcional para retornar um valor da função.
Exemplo de uma função
def saudacao(nome): """ Esta função saúda a pessoa passada como parâmetro """ print("Olá, " + nome + ". Bom dia!") Como chamar uma função em Python?
Uma vez definida uma função, podemos chamá-la de outra função, programa, ou até do prompt Python. Para chamar uma função, simplesmente digitamos o nome da função com parâmetros apropriados.
>>> saudacao('Paulo') Olá, Paulo. Bom dia! Tente executar o código acima no programa Python com a definição da função para ver a saída.
def saudacao(nome): """ Esta função saúda a pessoa passada como parâmetro """ print("Olá, " + nome + ". Bom dia!") saudacao('Paulo') Nota: Em Python, a definição da função deve sempre estar presente antes da chamada da função. Caso contrário, teremos erro. Por exemplo,
# chamada da função saudacao('Paulo') # definição da função def saudacao(nome): """ Esta função saúda a pessoa passada como parâmetro """ print("Olá, " + nome + ". Bom dia!") # Erro: name 'saudacao' is not defined Docstrings
A primeira string após o cabeçalho da função é chamada docstring e é abreviação de documentation string. É usada brevemente para explicar o que uma função faz.
Embora opcional, documentação é uma boa prática de programação. A menos que você lembre o que jantou na semana passada, sempre documente seu código.
No exemplo acima, temos uma docstring imediatamente abaixo do cabeçalho da função. Geralmente usamos aspas triplas para que a docstring possa se estender por múltiplas linhas. Esta string está disponível para nós como atributo __doc__ da função.
Por exemplo:
Tente executar o seguinte no shell Python para ver a saída.
>>> print(saudacao.__doc__) Esta função saúda a pessoa passada como parâmetro
Para aprender mais sobre docstrings em Python, visite Python Docstrings.
A declaração return
A declaração return é usada para sair de uma função e voltar ao local de onde foi chamada.
Sintaxe do return
return [lista_expressao]
Esta declaração pode conter uma expressão que é avaliada e o valor é retornado. Se não há expressão na declaração ou a declaração return não está presente dentro da função, então a função retornará o objeto None.
Por exemplo:
>>> print(saudacao("Maio")) Olá, Maio. Bom dia! None Aqui, None é o valor retornado já que saudacao() imprime diretamente o nome e nenhuma declaração return é usada.
Exemplo de return
def valor_absoluto(num): """Esta função retorna o valor absoluto do número inserido""" if num >= 0: return num else: return -num print(valor_absoluto(2)) print(valor_absoluto(-4)) Saída
2 4
Como Função funciona em Python?
(Diagrama ilustrativo)
Escopo e Tempo de vida de variáveis
Escopo de uma variável é a porção de um programa onde a variável é reconhecida. Parâmetros e variáveis definidas dentro de uma função não são visíveis de fora da função. Portanto, têm escopo local.
O tempo de vida de uma variável é o período durante o qual a variável existe na memória. O tempo de vida de variáveis dentro de uma função é enquanto a função executa.
Elas são destruídas uma vez que retornamos da função. Portanto, uma função não lembra o valor de uma variável de chamadas anteriores.
Aqui está um exemplo para ilustrar o escopo de uma variável dentro de uma função.
def minha_funcao(): x = 10 print("Valor dentro da função:",x) x = 20 minha_funcao() print("Valor fora da função:",x) Saída
Valor dentro da função: 10 Valor fora da função: 20
Aqui, vemos que o valor de x é 20 inicialmente. Mesmo que a função minha_funcao() mudou o valor de x para 10, não afetou o valor fora da função.
Isso ocorre porque a variável x dentro da função é diferente (local à função) da de fora. Embora tenham os mesmos nomes, são duas variáveis diferentes com escopos diferentes.
Por outro lado, variáveis fora da função são visíveis de dentro. Elas têm escopo global.
Podemos ler esses valores de dentro da função mas não podemos alterá-los (escrever). Para modificar o valor de variáveis fora da função, elas devem ser declaradas como variáveis globais usando a palavra-chave global.
Tipos de Funções
Basicamente, podemos dividir funções nos seguintes dois tipos:
- Funções embutidas (built-in) - Funções que vêm integradas ao Python.
- Funções definidas pelo usuário - Funções definidas pelos próprios usuários.
python
- Dominando Operadores em Python: Guia Completo
- Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
- Funções Lambda em Python: Guia Prático para Funções Anônimas
- Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
- Generators em Python: Iteração Eficiente e Casos de Uso Avançados
- Closures em Python Explicados: Como Funções Aninhadas Capturam Variáveis
- Dominando Decorators em Python: Aprimore Funções com Técnicas de Especialista
- 10 Recursos Essenciais do Insight para Otimizar Impressão FDM Stratasys
- Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
- Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas