Apostila do Minicurso de Python - UFU

Funções

Funções são aqueles nomes que usamos para realizar alguma ação em nosso código. Por exemplo, quando utilizamos input() em nosso programa, estávamos utilizando a função input() para solicitar uma informação do usuário. Podemos, também, criar nossas próprias funções.

A definição de uma função é dada pela instrução def seguida do nome da função. Logo depois, especificamos dentro de parênteses os parâmetros que a função deve receber.

>>> def subtrai(num1, num2):
>>>     print(num1-num2)

Nesse caso, a função subtrai recebe um parâmetro chamado num1 e um parâmetro chamado num2. Logo, estamos deixando claro que o usuário, quando chamar a função subtrai, deve informar dois parâmetros.

Em seguida, definimos que essa função deve executar uma subtração entre num1 e num2 e imprimir o resultado na tela.

Uma função não é executada assim que definida, mas somente quando é chamada. Para chamar uma função fazemos:

>>> subtrai(10, 4)
6

Ou seja, chamamos a função pelo nome que demos a ela e passamos os parâmetros que ela requer. Porém, nem sempre queremos imprimir o resultado da nossa função da tela.

>>> def subtrai(num1, num2):
>>>     return(num1-num2)

Realizar a subtração e imprimir a subtração na tela são duas coisas diferentes. Logo, podemos suprimir o print e deixar a função realizar o cálculo apenas. Usando return, podemos informar o resultado da função sem precisar imprimi-lo na tela.

A função também pode não ter parâmetros ou ter parâmetros opcionais. Nesse caso, daremos um valor padrão para o parâmetro. Assim, se o usuário não informar um valor para o parâmetro, usaremos seu valor padrão.

>>> def repetir(qtd, caractere='a'):
>>>     return(qtd*caractere)
>>> repetir(10)
'aaaaaaaaaa'

>>> repetir(20, '*')
'********************'

Inclusive, parâmetros podem ser especificados na chamada da função, mesmo quando são obrigatórios. Caso não sejam nomeados, devem seguir a ordem na qual foram definidos.

>>> repetir(qtd=20, caractere='*')
'********************'