Funções
Para trabalhar com funções em Python, devemos utilizar o comando def. O diferencial de uma função em Python é que nativamente, a mesma pode retornar mais de um valor e toda a passagem de parametros é por referencia;
Funções com retorno
A sintaxe de uma funcao é:
def nome_da_funcao (argumento1, argumento2, ..., argumentoN):
corpo da funcao
...
return valor1, valor2, ..., valorN
Exemplo:
def quadrado (numero):
return numero * numero
Chamada da função
def quadrado (numero):
return numero * numero
def main():
print(quadrado(4))
if __name__ == '__main__':
main()
Funções sem retorno
Da mesma forma que temos em outras linguagens de programacao, temos funções não necessitam de retorno.
def imprimir_nome(nome):
print("Hello",nome)
def main():
imprimir_nome('Ana')
if __name__ == '__main__':
main()
Obs: Dentro da funcao imprimir_nome, tambem poderiamos colocar o comando return na ultima linha da funcao.
Funções com mais de um retorno
Para fazermos uma funcao com mais de um retorno, precisamos fazer com que dois valores recebem os retornos da funcao:
def dobro_triplo(numero):
dobro = numero * 2
triplo = numero * 3
return dobro, triplo
def main():
valor1, valor2 = dobro_triplo(2)
print('\nO dobro:', valor1)
print('\nO triplo:', valor2)
if __name__ == '__main__':
main()
Passando parametros do tipo lista
Além dos tradicionais tipos de dados, há a possibilidade de se passar uma lista nos argumentos de uma função:
#passando uma lista como parametro
def dobraLista(lista):
posicao = 0
while posicao < len(lista):
lista[posicao] *= 2
posicao += 1
listaValores = [1, 2, 3, 4, 5, 6]
dobraLista(listaValores)
print('Valores da lista dobrada: ',listaValores)
Empacotamento de paramentros
Há casos em que não sabemos quantos paramentros serão passados para a função. Até o momento, colocávamos a quantidade de parametros nos argumentos da função, porém existem o conceito de empacotamento de parametros, a qual não precisamos dizer ao Python quantos argumentos serão passados para a função.
Por exemplo, podemos escrever as funções:
def somainteiros(* inteiros):
for valor in inteiros:
print(f'{valor} ', end='')
print('')
def containteiros (* inteiros):
tamanho = len(inteiros)
print(f'A quantidade de inteiros recebidos sao {tamanho}')
#chamada das funcoes
somainteiros(5, 4)
somainteiros(6, 2, 2)
somainteiros(5, 3, 2, 1)
containteiros(3, 1)
containteiros(3, 1, 5, 6, 8, 4)