Como programador, muitas vezes você se verá executando uma ação ou tarefa repetidamente. Isso pode ser tedioso e demorado, especialmente ao trabalhar com uma base de código grande ou complexa. Automatizá-los com funções é uma abordagem mais eficaz para executar essas tarefas. As funções permitem que você escreva a lógica do código uma vez e use-a em qualquer lugar do seu programa.

O que é uma função Python?

Em Python, uma função é um bloco de código usado para executar uma tarefa específica. Você só precisa escrever uma função uma vez, mas pode usá-la várias vezes em seu código. Uma função pode receber argumentos como entrada e retornar valores de saída. Este programa simples mostra uma função que calcula a soma de três números:

# Função Python para calcular a soma de três números

defcalcular_soma(a, b,c):
retornar a+b+c

imprimir (calcular_soma(1,2,3)) # retorna 6
imprimir (calcular_soma(1000, 300,44)) # retorna 1344
imprimir (calcular_soma(12, 4,78)) # retorna 94

No programa acima, a função retorna a soma de três argumentos. Quando a função é chamada várias vezes, ela retorna uma saída diferente para cada caso. Um aplicativo útil para esta função será um aplicativo de calculadora.

Definindo uma função em Python

Python tem muitas funções internas disponível para os desenvolvedores usarem. No entanto, essas funções incorporadas nem sempre são suficientes para atender às demandas da maioria dos projetos. Para atender às demandas personalizadas, você deve definir suas funções personalizadas. Definir funções personalizadas é uma prática comum na programação.

Em Python, você pode definir uma função personalizada usando o def palavra-chave seguida pelo nome da sua função com parênteses na frente dela. Aqui está um exemplo:

deffunction_name()

Você deve observar estas regras ao atribuir um nome de função em Python:

  • Os nomes das funções devem estar em letras minúsculas.
  • Os nomes das funções devem ser descritivos.
  • Use sublinhados para separar palavras em um nome de função.

Depois de definir a função, você deve escrever a lógica para executar a tarefa desejada. Por exemplo, esta função calcula a área de um triângulo:

# Função Python para calcular a área de um triângulo

defcalcular_triângulo_área(base, altura):
área = (base * altura)/2
retornar área

imprimir (calcular_triângulo_área(12, 3))

A função acima define dois parâmetros: base e altura, divide seu produto por dois e retorna o resultado como saída. Você pode escrever qualquer lógica que deseja que sua função execute.

Compreendendo os argumentos da função

Nos exemplos anteriores, as funções receberam argumentos para executar ações. Os argumentos nesses exemplos são conhecidos como argumentos obrigatórios ou posicionais. Em Python, seus argumentos podem ser um dos seguintes:

  • Argumentos posicionais
  • Argumentos de palavras-chave

Argumentos Posicionais

Argumentos posicionais precisam ser passados ​​na ordem correta de definição. Por exemplo, se você definir uma função com parâmetros a, b, e c, você deve passar valores para esses parâmetros de acordo quando chamá-los. Examinemos um exemplo anterior:

# Função Python para calcular a soma de três números

defcalcular_soma(a, b,c):
retornar a+b+c

imprimir (calcular_soma(1,2,3)) # retorna 6
imprimir (calcular_soma(1000, 300,44)) # retorna 1344
imprimir (calcular_soma(12, 4,78)) # retorna 94

No programa acima, o calcular_soma() A função recebe três argumentos sempre que a chamamos. Cada argumento representa um parâmetro correspondente. Na primeira chamada de função, os números 1, 2, e 3 representar um, b, e c de acordo.

Um parâmetro é declarado na definição de uma função, enquanto um argumento é o valor passado quando você chama a função Este valor é uma representação de seu parâmetro correspondente.

Argumentos posicionais são obrigatórios. Se você não adicioná-los, você receberá um TypeError. O exemplo a seguir demonstra isso:

defcalcular_soma(a, b,c):
retornar a+b+c

imprimir (calcular_soma(1,2)) # gera TypeError

Ao executar o programa acima em sua máquina, você receberá um erro semelhante ao da imagem abaixo:

Argumentos de palavras-chave

Os argumentos de palavra-chave não precisam necessariamente ser passados ​​sempre que você chama uma função. Eles são argumentos opcionais e não precisam seguir uma ordem específica. Python nos permite usar *args e **kwargs para especificar argumentos de palavra-chave.

Além de usar *args e ** kwargs, também é possível especificar valores padrão para seus argumentos. Fazer isso não causará um erro se você esquecer de adicionar um valor ao chamar a função. Este exemplo dá uma ilustração:

defcalcular_soma(a, b, c =3):
retornar a+b+c

imprimir (calcular_soma(1,2)) # retorna 6

No programa acima, quando calcular_soma() é chamado, não há argumento para c; isso não afetará o programa porque c já tem um valor padrão. Você pode especificar valores padrão para quantos argumentos quiser, mas certifique-se de fazer isso com sabedoria.

Use funções para organizar seu código

As funções são úteis para organizar seu código, tornando-o mais legível e eficiente. Com as funções, você pode dividir seu código em partes menores e reutilizáveis ​​que são mais fáceis de entender e manter. Além disso, se você precisar fazer alterações em seu código, precisará modificar apenas a função necessária em vez de toda a base de código.