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))