Retornar de uma função: return
Para quando queremos terminar a execução de uma função e/ou retornar um valor, usamos a instrução return que pode ou não retornar valores.
No exemplo seguinte, temos a função imprime, que imprime o elemento da lista passada como parâmetro, da posição passada no parâmetro index, mas verifica antes se a posição não é maior ou igual ao tamanho da lista, e caso o seja, retona da função, terminando a sua execução.
def imprime(lista, index):
if index >= len(lista):
return
print lista[index]
imprime([], 2)
imprime([1, 2, 3], 2)
Já no exemplo seguinte, a função retorna um valor, que é o somatório dos valores passados como parâmetro.
def somar(a, b):
return a + b
print somar(3, 5)
Também é possível retornar vários valores. Para isso, no return, temos de separar os valores por virgula, ou então retornar uma lista ou array de valores.
Para receber os valores de retorno em várias variáveis, temos de separar as variáveis por virgula, mas também é possível receber esses valores numa lista.
No exemplo a seguir, temos a função “proximos”, que retorna o número anterior e seguinte ao valor passado como parâmetro, e os valores retornados são guardados nas variáveis, “ant” e “seg” respectivamente.
def proximos(a):
return a - 1, a + 1
ant, seg = proximos(10)
print "anterior:", ant
print "seguinte:", seg
Aceder a variáveis globais
Para aceder a uma variável global numa função temos de usar a instrução global, que tem a seguinte forma de uso:
global variavel
No exemplo a seguir acedemos à variável global num, para a incrementar:
num = 0
def incNum():
global num
num += 1
incNum()
Funções anónimas ou lambda
As funções anónimas ou lambda, são funções que como o nome indica, não tem nome, e que podem ser criadas e executadas em qualquer momento da execução do programa, não precisando de ser definidas, e que apenas retornam o valor de uma expressão, sem precisar do return.
Para criar uma função anónima, usamos a instrução lambda, que pode ser usada da seguinte forma:
lambda param1, param2: expressão
Exemplo:
inc = lambda x: x + 1
print inc(10)
Nota: Qualquer função pode ser atribuída a uma variável, e as funções lambda não são excepção, podendo depois ser executadas com o nome da variável.
Em baixo definimos a função “find”, que tem como parâmetros, uma lista e uma função, que será executada para cada elemento da lista, e que retorna verdadeiro ou falso, para validar se o elemento é o elemento a retornar. Depois na execução passamos uma lista e uma função lambda, que vai verificar se o item, que será passado como “x”, é igual a 7, ou seja, a função “find”, vai procurar por um elemento que seja igual a 7, retornando esse elemento.
def find(lista, func):
for item in lista:
if func(item): return item
print find([9, 4, 7, 2, 5], lambda x: x == 7)
Deixem a vossa opinião e sugestões, e se não perceberem perguntem, que eu terei todo o gosto em responder.
E pronto, é tudo por hoje. Para a semana há mais. Boa programação.
Páginas: 1 2