Funções¶
Tópicos¶
documentação: docstring
Exercício 1 de motivação¶
O número de combinações possíveis de m
elementos em grupos de n
elementos (n <= m) é dada pela fórmula de combinação
m!/((m-n)!n!)
.
Escreva um programa que lê dois inteiros m
e n
e calcula a
combinação de m
, n
a n
.
Clique aqui para ver uma solução.
Observe que o pedaço de código que calcula o fatorial é repetido várias vezes. Uma importante ferramenta computacional é a capacidade de abstrair partes relevantes e/ou que se repetem mais de uma vez na forma de funções.
Funções em Python¶
Para declarar uma função em Python faça o seguinte:
def nome_da_função ( parâmetros ):
'''
docstring contendo comentários sobre a função.
Embora opcionais são fortemente recomendados. Os comentários
devem descrever o papel dos parâmetros e o que a função faz.
'''
# corpo da função
|
| bloco de comandos
|
Esqueleto de um programa em Python¶
Para nos prevenir de alguns problemas (que serão explicados mais
tarde), vamos adotar nesse curso o seguinte esqueleto para escrever
programas em Python com funções. Nesse esqueleto, a primeira função
sempre será chamada de main
e corresponderá a função principal do
programa, ou seja, aquela que resolve o problema. As demais funções
auxiliares devem ser definidas, em qualquer ordem, após a definição da
main
e, por fim, para executar o programa, a função main
precisa ser chamada.
# função principal
def main():
'''
Função principal, será a primeira a ser executado e
será a responsável pela chamada de outras funções que
por sua vez podem ou não chamar outras funções que
por sua vez ...
'''
# corpo da função main
|
| bloco de comandos
|
# Declaração das funções
def f( parâmetros_de_f ):
'''
docstring da função f
'''
# corpo da função f
|
| bloco de comandos
|
def g( parâmetros_de_g ):
'''
docstring da função g
'''
# corpo da função g
|
| bloco de comandos
|
[...]
# início da execução do programa
#-----------------------------------------------------
if __name__ == '__main__': # chamada da funcao principal
main() # chamada da função main
O uso do “if __name__ == ‘__main__’” para a chamada da função main permite que esse arquivo contendo uma ou várias funções seja incluído em outros programas (usando “import” e suas variações) sem a necessidade de reescrever ou copiar o código.
Exercícios¶
Exercício 2¶
Complete a função fatorial
abaixo,
que recebe como parâmetro um número
inteiro k
, k >= 0
, e retorna k!.
Escreva apenas o corpo da função.
Observe que o código já inclui
chamadas para a função fatorial
, para que
você possa testar a função.
Clique aqui para ver uma solução.