Neste capítulo, discutiremos funções e bibliotecas. Uma função é um conjunto de comandos que realiza uma tarefa específica em um módulo independente de código, como pode ser vista no exemplo a seguir. Vamos supor que nosso programa é uma empresa que faz bolos. Essa empresa disponibiliza para venda bolos simples, com recheio de chocolate ou com recheio de morango, e possui um gerente e um funcionário para fazer cada tipo. O gerente pede a um funcionário específico que faça um determinado sabor de bolo. Nesse exemplo, os funcionários que farão cada tipo do doce são as funções que assim serão chamadas; ou seja, sempre que desejarmos um de chocolate, designaremos a tarefa ao confeiteiro responsável por ele, que seguirá a receita dele e o entregará pronto.
Mas por que utilizamos funções? As funções nos dão diversas vantagens, dentre as quais destacaremos duas. A primeira delas é a economia de código, já que não precisamos reescrever tudo que está dentro da função toda vez que temos que usá-las, podendo apenas chamá-las. A segunda é que, por economizar linhas, o código fica mais simples e, portanto, mais legível. Um exemplo de função é uma função que escreve algum texto. Na prática, ela não tem utilidade, já que podemos realizar essa tarefa em apenas uma linha, mas é interessante para facilitar nosso entendimento.
def escreveTexto():
print("texto")
escreveTexto()
No exemplo acima, criamos a função ”escreveTexto” e ela escreve “Texto” na tela. Depois de criarmos a função, chamamos, invocamo-las para que seja executada. Para criarmos uma função, primeiro escrevemos o comando def e, em seguida, escrevemos o nome da função. Entre parênteses, escrevemos os parâmetros, que estudaremos logo em seguida. Outro exemplo, com um uso real mais provável, é uma função que verifica se um número é par ou ímpar e o escreve na tela. Daremos o nome dessa função de !parOuImpar!, como podemos notar a seguir:
num=int(input("escreva um numero\n”))
def parOuImpar(num):
if (num%2)==0:
print("este numero e par")
else:
print("este numero e impar")
parOuImpar(num)
Nesse exemplo, primeiro lemos um número do usuário com o comando input(). Em seguida, criamos a função parOuImpar, que escreve na tela se o número é par ou ímpar e, por fim, chamamos essa função.
É possível notar também que, logo após o nome da função, declaramos a variável num, que é chamada de parâmetro. Os parâmetros são os valores de entrada que uma função recebe. Através deles informamos valores que serão manipulados pela função. Esses, por sua vez, podem ser escritos tanto na forma de valores quanto de variáveis. No exemplo acima, o parâmetro é o número que a função deve analisar se é par ou ímpar.
Outro exemplo de função que podemos criar é a que efetua e escreve na tela o valor da soma de dois números.
def soma(num1,num2):
print("a soma e {}".format(num1+num2))
soma(2,5)
Ainda é importante salientarmos a diferença entre variáveis locais e globais. As variáveis globais são declaradas fora de qualquer função e podem ser acessadas de qualquer lugar do programa. Já as variáveis locais são declaradas dentro de um escopo e, consequentemente, só podem ser acessadas dentro desse mesmo escopo. Um escopo é uma delimitação, em que valores e expressões estão associados.
def func1():
num=0
print(num)
Um exemplo de variável local pode ser visto acima, no qual a variável num foi declarada dentro da func1, ou seja, o programa acima apresentaria um erro, já que a variável num não está definida no escopo global. Outro exemplo é quando declaramos um parâmetro. Essa variável também só é válida dentro do escopo da função.
A seguir temos um exemplo de programa com retorno:
def func1():
num1=int(input("digite dois numeros\n”))
num2=int(input())
return num1+num2
soma=func1()
print(soma)
O retorno, como o próprio nome diz, retorna um valor. É importante recebermos em algum lugar o que foi retornado pela função. No exemplo acima, a função soma retorna para a variável soma. Uma função pode retornar mais de um valor e esses valores são separados por vírgulas.
Por fim, discutiremos as bibliotecas, mas de forma bem superficial. Uma biblioteca é, basicamente, um conjunto de funções pré-escritas, que podem ser utilizadas para solucionar certos problemas. Existem diversas bibliotecas para Python, dentre as quais destacam-se as que são usadas para a ciência de dados.
🔗 Para acessar todos os capítulos, visite a página: Livro de Lógica de Programação em Python.