Funções

Funções em Python são definidas por meio da seguinte sintaxe:

def nomedafuncao(parametro1, parametro2, ...):
        corpodafuncao
        return valor # opcional

Os exemplos abaixo ilustram melhor a criação de funções.

def f(n):   
    print("O valor do parâmetro é", n)

f(10)
O valor do parâmetro é 10
# Exemplo de função que retorna um valor.
def fatorial(n):
    fact = 1
    while n > 1:
        fact = fact * n
        n = n - 1
    return fact

print("Fatorial: ", fatorial(6))
Fatorial:  720
# Exemplo de função que retorna mais de um valor.
def quociente_resto(x, y):
    quociente = x // y
    resto = x % y
    return (quociente, resto)

print("Quociente e resto: ", quociente_resto(9, 4))
Quociente e resto:  (2, 1)

O exemplo acima, retirado do curso de Python no Edx, mostra um uso interessante de tuplas: o retorno de mais de um valor em uma única chamada de função.

Funções anônimas (funções lambda)

A palavra-chave lambda em Python nos permite criar funções anônimas. Este tipo de função é útil quando desejamos passar uma função simples como argumento para outra função. O uso de funções anônimas.

# A função map aplica uma função a um conjunto de valores.
def potencia(n):
    """Retorna o quadrado de n."""
    return n ** 2

# Função map sem o uso de função lambda.
print(list(map(potencia, range(5))))
[0, 1, 4, 9, 16]

Observação: Note o uso do estilo de documentação da função acima. Usamos aspas triplas para documentar o que a função faz. Esse tipo de documentação é chamado docstring e seu uso é opcional mas altamente recomendado.

Perceba que a função potencia é uma função muito simples, cujo único objetivo é ser passada como parâmetro para a função map. Podemos alcançar o mesmo resultado do código acima de forma mais concisa se usarmos uma função lambda.

# Função map com função lambda.
print(list(map(lambda x: x ** 2, range(5))))
[0, 1, 4, 9, 16]