Uma função é um bloco de código que executa uma tarefa específica. Uma função é definida usando a palavra-chave def. A sintaxe é a seguinte:
def nome_da_funcao():
# código da funçãoAs funções são importantes para a reutilização de código. Por exemplo, se você precisar executar a mesma tarefa várias vezes, você pode definir uma função para executar essa tarefa e, em seguida, chamar a função sempre que você precisar executar a tarefa.
Para chamar uma função, digite o nome da função seguido de parênteses:
nome_da_funcao()As funções podem receber argumentos. Os argumentos são especificados após o nome da função, dentro dos parênteses. Você pode adicionar quantos argumentos quiser, basta separá-los com uma vírgula.
Os argumentos são frequentemente abreviados como args.
O exemplo abaixo tem uma função com um argumento (fname). Quando a função é chamada, passamos um argumento, ou valor, que é usado dentro da função para imprimir o nome completo:
def nome_completo(fname):
print(fname + " Santos")
nome_completo("João")
nome_completo("Maria")
nome_completo("José")Se você não souber quantos argumentos que serão passados para sua função, adicione um * antes do nome do parâmetro na definição da função.
Isso fará com que o parâmetro receba uma tupla de argumentos e você pode acessar os itens de acordo com a necessidade.
def nome_completo(*nomes):
print("O nome completo é: " + nomes[0] + " " + nomes[1])
nome_completo("João", "Santos")
nome_completo("Maria", "Santos")
nome_completo("José", "Santos")Se você quiser que uma função receba um número fixo de argumentos, adicione dois pontos (:) após o parâmetro e, em seguida, defina os valores padrão para os parâmetros. Isso fará com que o parâmetro seja opcional.
def nome_completo(nome, sobrenome = "Santos"):
print(nome + " " + sobrenome)
nome_completo("João")
nome_completo("Maria")
nome_completo("José")Para deixar uma função retornar um valor, use a instrução return:
def soma(x, y):
return x + y
print(soma(5, 3))Uma função pode chamar a si mesma. Isso é chamado de recursão.
A função abaixo imprime uma sequência de números, começando em 0, e terminando em 10:
def recursao(i):
if (i < 10):
print(i)
recursao(i + 1)
recursao(0)O fatorial de um número é o produto de todos os inteiros inferiores a e incluindo ele mesmo. O fatorial de 5 é escrito como 5! e é igual a 1 * 2 * 3 * 4 * 5 = 120. Escreva uma função que calcule o fatorial de um número.
def fatorial(n):
if n == 1:
return 1
else:
return n * fatorial(n - 1)
print(fatorial(5))O número de Fibonacci é uma sequência de números inteiros, começando normalmente por 0 e 1, na qual, cada termo subsequente corresponde à soma dos dois anteriores. Escreva uma função que calcule o n-ésimo número de Fibonacci.
def fibonacci(n):
if n <= 1:
return n
else:
return(fibonacci(n-1) + fibonacci(n-2))
print(fibonacci(9))Uma função lambda é uma pequena função anônima.
Uma função lambda pode receber qualquer número de argumentos, mas pode ter apenas uma expressão.
x = lambda a : a + 10
print(x(5))A função map() aplica uma função a todos os itens de um iterável.
def dobro(x):
return x * 2
valores = [1, 2, 3, 4, 5]
valores_dobrados = map(dobro, valores)
print(list(valores_dobrados))A função filter() cria uma lista de elementos para os quais uma função retorna True.
def maior_que_5(x):
if x > 5:
return True
else:
return False
valores = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
valores_maiores_que_5 = filter(maior_que_5, valores)
print(list(valores_maiores_que_5))