Funções são procedimentos que retornam saídas a partir de entradas. A estrutura básica é a seguinte, ilustrada para duas variáveis de entrada e duas variáveis de saída.
def nome_da_funcao(var_entrada_1,var_entrada_2)
procedimentos
return var_saida1, var_saida2
Vejamos alguns exemplos:
Exemplo - uma função simples com um argumento de entrada e um de saída
A seguinte função por exemplo, retorna o quadrado de um número.
# definindo a função
def quadrado(x):
return x**2
# agora podemos usar a função
a = 2
b = quadrado(a)
print(b)
Que retorna o resultado 4
.
Vejamos outros exemplos e usos de funções.
Exemplo - função com duas variáveis de entrada e duas de saída
A seguinte função por exemplo, recebe dois números, os soma e os subtrai como saídas da função.
# definindo a função
def soma_subtracao(a,b):
c = a + b
d = a - b
return c,d
# agora podemos usar a função
x = 4
y = 3
w,z = soma_subtracao(x,y)
print(w,z)
O resultado retorna w = 7
e z = 1
Importante: note que as variáveis localmente definidas no meio da função (a
, b
, c
, d
) não precisam ter os mesmos nomes que as variáveis globalmente definidas (x
, y
, w
, z
).
Exemplo - uso de variáveis globais e locais
A seguinte função por exemplo, recebe dois números, os soma e os subtrai como saídas da função. Porém, faz uso de variáveis p
e q
, sendo p
uma global e q
uma que existe tanto globalmente quanto localmente. No caso de variáveis que existem globalmente e localmente, o python dá preferência à variável local na função.
# definindo a função
def soma_subtracao(a,b):
q = 1
c = a + b + p
d = a - b + q
return c,d
# agora podemos usar a função
x = 4
y = 3
p = 10
q = 100
w,z = soma_subtracao(x,y)
print(w,z)
O resultado retorna w = 17
e z = 2
Importante: note que para o cálculo de d
foi empreado o valor de q
como 1, que está definido localmente na função, ao invés de usar a variável global q
com valor de 100
.
Exemplo - cálculo da fração molar a partir da fração mássica
Por exemplo, para calcular as frações molares dadas as frações mássicas e massas molares, a relação é escrita da seguinte forma.
$$ x^{mol}_i = \frac{\frac{x^{max}_i}{MM_i}}{\sum_i{\frac{x^{max}_i}{MM_i}}} $$A função que efeuta o cálculo está apresentada abaixo, exemplificada para uma mistura água,etanol, metanol.
# definindo a função
def mas_p_mol(xmas,MM):
n = len(xmas) # captura a dimensão do vetor de frações mássicas
xmol = xmas*1 # cria o vetor de frações molares igual a xmas (mas será substituído)
Den = 0 # inicializa o denominador
for i in range(n):
xmol[i] = xmas[i]/MM[i] # xmol
Den = Den + xmol[i] # atualiza o denominador
for i in range(n):
xmol[i] = xmol[i]/Den # atualiza o xmol
return(xmol)
# agora podemos chamar a função
nomes = ['agua','etanol','metanol'] # nomes dos compostos
xmas = [.3, .5, .2] # frações mássicas
MM = [ 18, 46, 32] # massas molares
xmol = mas_p_mol(xmas,MM)
print(xmol)
O resultado gerado é:
[0.4932975871313673, 0.32171581769436997, 0.18498659517426275]
As principais funções internas empregadas no python estão apresentadas na tabela a seguir.
Função | Descrição | Exemplo |
---|---|---|
print() |
Imprime texto ou variáveis na tela | print("Olá, mundo!") |
input() |
Recebe dados digitados pelo usuário como string | nome = input("Digite seu nome: ") |
int() |
Converte string ou número para inteiro | idade = int("25") |
float() |
Converte string ou número para ponto flutuante | preco = float("19.99") |
str() |
Converte valor para string | texto = str(100) |
len() |
Retorna o comprimento de listas, strings, etc. | len("Python") → 6 |
type() |
Informa o tipo do objeto | type(3.14) → <class 'float'> |
range() |
Gera uma sequência de números | range(0, 5) → 0,1,2,3,4 |
sum() |
Soma os elementos de um iterável (lista, tupla...) | sum([1, 2, 3]) → 6 |
max() / min() |
Retorna o maior / menor valor de uma sequência | max([1,5,3]) → 5 |
round() |
Arredonda um número | round(3.14159, 2) → 3.14 |
list() |
Converte um iterável (como string ou tupla) para lista | list("abc") → ['a', 'b', 'c'] |
sorted() |
Retorna uma nova lista ordenada | sorted([3, 1, 2]) → [1, 2, 3] |
enumerate() |
Retorna pares (índice, valor) para iterar com controle de posição | for i, v in enumerate(lista): |
zip() |
Combina elementos de dois (ou mais) iteráveis em pares | zip(nomes, idades) |
Estas funções são amplamente usadas em exercícios básicos e intermediários de Python — ideais para quem está aprendendo listas, strings, laços (
for
,while
) e estruturas condicionais.
Exercício
Use a função nome = input("Digite seu nome: ")
pa atribuir um 'valor' para a variável 'nome'.
Exercício Use a função max()
para determinar o máximo valor da lista [10,30,50,40]
Exercício Use a função len()
para determinar o número de elementos do texto "anticonstitucionalíssimamente"
Além das funções usuais, há uma lista de outras funções internas do python.
Função | Descrição | Exemplo |
---|---|---|
abs() |
Retorna o valor absoluto de um número | abs(-5) → 5 |
bool() |
Converte um valor para booleano (True ou False ) |
bool("") → False |
all() |
Retorna True se todos os elementos do iterável forem verdadeiros |
all([True, 1, "ok"]) → True |
any() |
Retorna True se pelo menos um elemento for verdadeiro |
any([False, 0, ""]) → False |
dict() |
Cria um dicionário | dict(nome="João", idade=30) |
set() |
Cria um conjunto (sem elementos duplicados) | set([1, 2, 2, 3]) → {1, 2, 3} |
tuple() |
Cria uma tupla | tuple([1, 2, 3]) → (1, 2, 3) |
help() |
Mostra ajuda sobre funções ou objetos | help(len) |
dir() |
Lista os atributos e métodos de um objeto | dir("texto") |
reversed() |
Retorna um iterador com os elementos em ordem reversa | list(reversed([1, 2, 3])) → [3, 2, 1] |
eval() |
Avalia uma string como expressão Python | eval("2 + 3") → 5 |
pow() |
Eleva um número a uma potência (como ** ) |
pow(2, 3) → 8 |
isinstance() |
Verifica se um objeto é de um determinado tipo | isinstance(10, int) → True |
id() |
Retorna o identificador único do objeto na memória | id("abc") |
callable() |
Verifica se um objeto pode ser chamado (como função ou classe) | callable(print) → True |