Funções
Definição
- Uma função é um bloco de código que é executado apenas quando chamado.
- É possível passar, para uma função, dados chamados de parâmetros.
- Uma função pode retornar dados como resultado.
- Para criar uma função usa-se a palavra-chave def. No exemplo abaixo, a função teste() é chamada e imprime uma frase.
def teste():
print("Esta é uma função")
teste()
Exemplos
- Exemplo: A função verifica se um número inteiro é um número primo.
def numero_primo(n):
for i in range(2, int(n/2)):
if (n % i == 0):
print(n, "não é um número primo")
return()
print(n, "é um número primo")
print("Digite um número inteiro:")
num = int(input())
numero_primo(num)
- Exemplo: A função recebe uma lista de números e verifica se os números são números primos.
def numero_primo(n):
for j in range(0, len(n)):
i = 2
while i <= int(n[j]/2):
if (n[j] % i == 0):
print(n[j], "não é um número primo")
i = n[j]
else:
i += 1
if i != n[j]:
print(n[j], "é um número primo")
num = [7, 36, 101, 117, 200]
numero_primo(num)
- Exemplo: A função recebe uma quantidade desconhecida de números e verifica se os números são números primos.
def numero_primo(*n):
for j in range(0, len(n)):
i = 2
while i <= int(n[j]/2):
if (n[j] % i == 0):
print(n[j], "não é um número primo")
i = n[j]
else:
i += 1
if i != n[j]:
print(n[j], "é um número primo")
numero_primo(7, 36, 101, 117, 200)
- Exemplo: A função recebe um número desconhecido de parâmetros.
def nome_aluno(*nome):
print("*** Primeira passagem")
for x in nome:
print(x)
print("*** Segunda passagem")
for i in range(0, len(nome)):
print(nome[i])
nome_aluno("Maria", "Pedro", "João")
- Exemplo: O programa possui a saudação “oi” como padrão, mas o usuário pode definir outra saudação como “parabéns”.
def teste(nome, saudacao="Oi"):
print(saudacao + ","+nome)
teste("Maria")
teste("Maria", "Parabéns")
- Exemplo: A função recebe três palavras-chaves como argumentos. Isto significa que não importa a ordem na qual os argumentos são passados para a função.
def nome_aluno(aluno1, aluno2, aluno3): print(aluno1) print(aluno2) print(aluno3) nome_aluno(aluno3 = "João", aluno2 = "Pedro", aluno1 = "Maria")
A resposta do programa é:
Maria Pedro João
- Exemplo: A função recebe um número indefinido de palavras-chaves.
def nome_aluno(**nomes): print(nomes["aluno2"]) nome_aluno(aluno3 = "João", aluno2 = "Pedro", aluno1 = "Maria")
- Exemplo: A função retorna o fatorial de um número.
def fatorial(n):
fat = 1
for i in range(2, int(n)+1):
fat *= i
return fat
print("Digite um número inteiro:")
num = int(input())
print("Fatorial de", num, "=", fatorial(num))
- Exemplo: A função retorna a soma e a subtração de dois números.
def operacoes(a,b):
soma = a + b
subt = a - b
return (soma, subt)
x, y = operacoes(10, 7)
print("Números: 10 e 7")
print("Soma =", x, ", subtração =", y)
- Exemplo: Calcula o fatorial de um número usando recursão.
def fatorial(n):
if (n > 0):
fat = n * fatorial(n - 1)
else:
fat = 1
return fat
print("Digite um número inteiro")
n = int(input())
print("Fatorial de", n, "=", fatorial(n))
- Exemplo: A função lambda recebe qualquer número de argumentos, mas retorna apenas uma expressão. O programa abaixo calcula o valor de 5^2.
exponencial = lambda a, b: a ** b
print("exp =", exponencial(5, 2))
Observe que a função lambda é usada como função anônima dentro da função exponencial(). Esta característica torna possível usar uma mesma função com diferentes objetivos. O script abaixo calcula 5^2 e depois calcula 6^3.
def exponencial(n):
return lambda a : a ** n
exp2 = exponencial(2)
exp3 = exponencial(3)
print("exp2 =", exp2(5))
print("exp3 =", exp3(6))
