Função - Como Declarar, Chamar e Usar funções

Neste tutorial de nossa Apostila de Python online e grátis, vamos aprender como declarar uma função, além de ver como fazer para chamar ela, sempre que quisermos.


Como Declarar uma Função: def

Parar criar uma função em linguagem de programação Python, precisamos fazer uma declaração correta e precisa dela.

O escopo da declaração de uma função é:

def nome-funcao(argumentos):
   código
   código
   ...
   return valor

A primeira linha é chamada de hearder ou cabeçalho. A definição da declaração da função começa com a palavra-chave def. O que vem após o def é o nome da função.

No nosso caso, o nome da função é nome-funcao.
Em seguida, um par de parêntesis, que pode conter argumentos (informações para a função usar).

Depois, os dois pontos. E abaixo, o código da sua função.
Por fim, a instrução return com alguma informação, um valor, para retornar para quem chamou a função.

Calma, com exemplos, e aos poucos, você vai entender tudo isso bem melhor.

Há duas coisas opcionais:
Argumentos (informações que você passa para a função, ao chamar ela)
Retornar valor (informações que a função retorna para quem chamou ela)

Como Chamar uma Função

Como você chama alguém? Uma pessoa, um amigo?
Pelo nome, correto?

Em funções, é a mesma coisa. Basta escrever o nome dela, e ela roda.
Simples assim.



Se declaramos uma função assim:

def lalala():
   código
   código
   ... 

O nome dela é lalala, não tem argumentos nem retorna nenhum valor.
Para chamar ela, fazemos com a seguinte linha de código:
lalala()

E pronto. Só isso. Vamos ver um exemplo de código real? 

Exemplo de código com Função

Crie um programa em Python que exibe a mensagem "Olá, mundo!"
Porém, essa mensagem deve rodar de dentro de uma função.

Vamos criar uma função chamada mensagem. O que ela faz é simplesmente exibir uma mensagem, um print.
 
Agora, basta chamar:
mensagem()

Pronto, só isso, veja como fica o código:

def mensagem():
    print("Olá, mundo")

mensagem()




Script de Python com Funções

Em todos nossos scripts e programas de Python, aconteceu uma coisa:
Ele rodava da primeira até a última linha.
Linha por linha.
Na ordem.

No exemplo de código anterior, não.
É definido uma função, tem um print...mas nada ocorre.

Só depois que chamamos a função (mensagem()), é que acontece algo.
Ou seja, o Python pula esses def, não roda ele de cara.

Aliás, se você não tivesse chamado a função via mensagem(), aquele código nem seria executado.

Quando chamamos uma função de nome nome(), o Python sai buscando no código uma def nome(), ou seja, ele sabe que você chamou uma função.

Então ele para tudo e vai buscar onde essa função foi declarada e executa ela.
Ok?

Pode ter  1 milhão de linhas de código com funções. Se elas não forem chamadas, simplesmente não executam.

Mas se tiver uma função de uma linha (como a do exemplo), e ela for chamada 1 milhão de vezes, ela é executada 1 milhão de vezes.

Ou infinita vezes. O código a seguir executa o Olá, mundo! infinitamente:

def mensagem():
    print("Olá, mundo")

while 1:
    mensagem()


Exemplo de Código com Funções

Crie uma função que pede dois números, faz a soma e exibe o resultado, através de uma função. O usuário pode executar a função quantas vezes desejar.

A função que soma será a soma(). Ela é bem simples, pede x, pede y, transforma tudo em float, soma na variável soma e exibe este valor. Pronto.
Função é isso, um código simples, pequeno e bem específico, nada mais, nada menos.

Agora vamos ao programa normal.
Talvez seja preciso chamar a função soma() várias vezes. Quem vai controlar isso é a variável continuar.

Inicialmente ela é 1 (verdadeiro ou TRUE).
Com um laço while, testamos o valor de continuar, como é 1, é TRUE, então o looping roda.

Dentro do laço, é testado o valor de continuar, se for verdadeiro, cai num IF que chama a função soma().

Inicialmente, é tudo verdadeiro, logo a função é invocada.
Ela roda normalmente e faz tudo bonitinho.

Depois, perguntamos ao usuário se ele deseja continuar a fazer mais somas. Se desejar encerrar o programa, basta digitar 0.
continuar vai ser 0, o laço while vai ter teste FALSO e não vai mais executar, encerrando o looping e o programa.

Se digitar qualquer coisa diferente de 0, o teste do laço while vai ser verdadeiro e vai rodar de novo.

Nosso código fica:

def soma():
    x = float(input("Primeiro numero: "))
    y = float(input("Segundo numero: "))
    soma = x + y
    print("Soma: ",soma)

continuar=1

while continuar:
    if(continuar):
        soma()
    continuar=int(input("Digite 0 se desejar encerrar ou qualquer outro numero para continuar: "))


Bacana, né?

Exemplo de Código com Funções

Faça uma calculadora, usando funções. O script pergunta qual operação o usuário deseja rodar (soma, subtração, multiplicação ou divisão) e executa a operação.

A calculadora deve ser executada quantas vezes o usuário desejar.

A ideia aqui é criar várias funções, e dependendo do que o usuário digitar, executar a função corretamente.

Veja a solução completa:
Calculadora em Python usando Funções

Nenhum comentário:

Postar um comentário