Funções em Python

Sintaxe para definir funções

As funções em Python utilizam a palavra chave def seguida do nome da função e os parâmetros entre parêntesis terminado por dois pontos como no exemplo a seguir onde a função soma é definida para retornar a soma de seus dois parâmetros. Observe que o corpo da função é indentado da definição da função:


In [4]:
def soma( x, y):
    s = x + y
    return s

Para se realizar a chamada da função soma, basta utilizá-la pelo seu nome passando os parâmetros como argumentos da função. Veja o exemplo a seguir


In [5]:
r = soma(50, 20)
print (r)


70

Parâmetros da função

Existem dois tipos de parâmetros: posicional e com palavra chave. Os posicionais são aqueles que são identificados pela ordem em que aparecem na lista dos parâmetros da função. Já os com palavra chave, são identificados por nome=. Os parâmetros por palavra chave podem também ser posicionais, mas tem a vantagem que se não forem passados, ele assumem o valor mencionado por falta (default). Veja o exemplo abaixo:


In [7]:
def soma( x, y, squared=False):
    if squared:
        s = (x + y)**2
    else:
        s = (x + y)
    return s

Observe que os parâmetros, x e y são posicionais e serão os 2 primeiros argumentos da chamada da função. O terceiro parâmetro é por palavra chave e portanto opcional, posso usá-lo tanto na forma posicional, como na forma explícita com a palavra chave. A grande vantagem neste esquema é que posso ter um grande número de parâmetros com palavra chave e na hora de usar a função deixar explicitamente só os parâmetros desejados.

Veja os exemplos:


In [10]:
print ('soma(2, 3):', soma(2, 3))
print ('soma(2, 3, False):', soma(2, 3, False))
print ('soma(2, 3, True):', soma(2, 3, True))
print ('soma(2, 3, squared= True):', soma(2, 3, squared= True))


soma(2, 3): 5
soma(2, 3, False): 5
soma(2, 3, True): 25
soma(2, 3, squared= True): 25

Referências

As referências a seguir são da documentação oficial do Python. Neste curso, iremos utilizar muito pouco de sua biblioteca padrão, assim não há necessidade (nem condições) de se estudar estas referências todas. O nosso foco neste curso será no NumPy e aos poucos iremos oferecer estes materiais.