Escolar Documentos
Profissional Documentos
Cultura Documentos
Até agora, usamos funções apenas para "mostrar" valores [colocamos um comando
print( ) dentro delas para que elas possam apresentar valores na tela]. Acontece que uma
função pode ser escrita para não mostrar valores, mas para retorná-los [devolver
resultados] e nós vamos ver isso agora.
def mostra_dobro(num):
print(num*2)
mostra_dobro(10)
A função mostra_dobro( ) exige um argumento como valor e vai mostrar o valor na tela
[graças à função print( ) lá dentro]. Por causa disso, a função pode ser usada diretamente
como na linha mostra_dobro(10). O resultado do programa acima é:
20
O número 20 foi impresso na tela porque a função print(num*2) está dentro da função
mostra_dobro(num) – e nós chamamos esta função passando para ela o valor 10.
Vamos aprender uma nova forma de utilização das funções? Olha o programa abaixo:
def calcula_dobro(num):
return num * 2
Note que a função calcula_dobro( ) não manda, em seu interior, nenhuma informação
ser impressa na tela [não existe a função print( ) ali dentro]. O comando return indica que
a função deve oferecer como resultado [ou seja, como resposta da função] justamente
o num * 2.
Mostrar na tela é uma coisa [consegue-se isso com a função print( )]. Retornar um valor
é outra coisa bem diferente!
Quando uma função retorna um valor, a gente tem que fazer algo com esse valor: que
pode ser armazená-lo numa variável ou mesmo imprimi-lo diretamente por meio de
uma função print( ) no corpo do programa.
def ignora(numero):
return numero * 10 #A função termina aqui
print("pronto")
numero += 20
print("numero")
ignora(5)
print("Programa Terminado")
O programa acima resultará, apenas, em:
Programa Terminado
Note que nenhum dos comandos print( ) dentro do corpo da função ignora( ) foi
executado. Isso porque o código da função só é executado até o comando return.
return a + b
ou como se fosse uma função [com parênteses]:
return(a + b)
O Python entende as duas formas.
Uma Função pode retornar mais de um valor – e esses valores podem ser atribuídos a
mais de uma variável ao mesmo tempo... Veja o exemplo:
20 30
Note que a função dobro_triplo( ) foi construída para retornar dois valores: ancora*2 e
ancora*3 [ancora é o nome da variável interna que será passada como argumento da
função]. O fato de a função "devolver" dois valores ao mesmo tempo permite que
usemos isso para preencher duas variáveis diferentes ao mesmo tempo, o que fizemos
na atribuição das variáveis num1 e num2.
Você pode colocar os vários retornos de uma função numa única variável. Basta atribuir
a função a uma variável apenas.
def dobro_triplo(ancora):
return ancora*2, ancora*3
num = dobro_triplo(10)
print(num)
A variável num vai se transformar numa tupla contendo os dois valores o resultado é
este:
(20, 30)
Ei, João! Tupla de novo?!
Não se preocupe com a ideia de tupla. Nós ainda veremos o que é isso! Tenha paciência,
ok?