Funções em Python: Guia Prático para Iniciantes

As funções em Python são um dos principais recursos para organizar, reutilizar e simplificar um programa. Em vez de escrever o mesmo conjunto de instruções várias vezes, podemos agrupá-las em uma função e executá-las sempre que necessário.

Neste guia, você vai aprender desde a criação de uma função simples com def até o uso de parâmetros, argumentos, return, None e funções que retornam vários valores.

Todos os exemplos foram preparados para Python 3.12, não utilizam bibliotecas externas e podem ser executados em diferentes sistemas operacionais.


Banner sobre funções em Python com o título “Aprenda Funções em Python” e a chamada “Exemplos práticos do básico ao avançado”.

O que são funções em Python?

Uma função é um bloco de código criado para executar uma determinada tarefa.

Imagine que um programa precise calcular várias vezes a área de um retângulo. Poderíamos repetir a fórmula diversas vezes:

largura = 10
altura = 5

area = largura * altura
print(area)

largura = 8
altura = 4

area = largura * altura
print(area)

O código funciona, mas podemos evitar essa repetição criando uma função:

def calcular_area(largura, altura):
    return largura * altura

Depois, basta chamar a função sempre que precisarmos realizar o cálculo:

print(calcular_area(10, 5))
print(calcular_area(8, 4))

Resultado:

50
32

A principal vantagem é que a lógica fica centralizada em um único lugar.

Por que utilizar funções?

As funções ajudam principalmente a:

  • evitar repetição de código;

  • organizar programas maiores;

  • facilitar a manutenção;

  • dividir problemas complexos em partes menores;

  • reutilizar uma determinada lógica;

  • melhorar a legibilidade do código.

Em programas maiores, essa organização se torna especialmente importante.


Como criar uma função com def

Em Python, utilizamos a palavra-chave def para definir uma função.

A estrutura básica é:

def nome_da_funcao():
    # código da função

Por exemplo:

def saudacao():
    print("Olá, seja bem-vindo!")

Nesse momento, a função foi definida, mas ainda não foi executada.

Para executá-la, precisamos fazer uma chamada:

saudacao()

Resultado:

Olá, seja bem-vindo!

Entendendo cada parte

Observe:

def saudacao():
    print("Olá, seja bem-vindo!")

Temos:

  • def: informa ao Python que estamos definindo uma função;

  • saudacao: nome da função;

  • (): espaço destinado aos parâmetros;

  • :: indica o início do bloco da função;

  • indentação: define quais instruções pertencem à função.

A indentação é obrigatória para determinar o bloco de código da função.


Como chamar uma função

Depois de criar uma função, podemos chamá-la pelo seu nome seguido de parênteses:

def mostrar_mensagem():
    print("Aprendendo Python!")

mostrar_mensagem()

Também podemos chamar a mesma função várias vezes:

mostrar_mensagem()
mostrar_mensagem()
mostrar_mensagem()

Resultado:

Aprendendo Python!
Aprendendo Python!
Aprendendo Python!

Isso demonstra uma das principais vantagens das funções: reutilização.

Em vez de escrever:

print("Aprendendo Python!")
print("Aprendendo Python!")
print("Aprendendo Python!")

criamos uma função e reutilizamos sua lógica.


Funções com parâmetros

Até agora, nossas funções não recebiam nenhuma informação externa.

Mas muitas tarefas precisam trabalhar com dados diferentes.

Por exemplo, podemos criar uma função que recebe um nome:

def saudacao(nome):
    print(f"Olá, {nome}!")

Agora podemos fornecer diferentes nomes:

saudacao("Tiago")
saudacao("Maria")
saudacao("João")

Resultado:

Olá, Tiago!
Olá, Maria!
Olá, João!

O valor recebido pela função é armazenado na variável nome.

Mais de um parâmetro

Uma função também pode receber vários parâmetros:

def apresentar(nome, idade):
    print(f"Meu nome é {nome} e tenho {idade} anos.")

Podemos chamá-la assim:

apresentar("Tiago", 30)

Resultado:

Meu nome é Tiago e tenho 30 anos.

Outro exemplo:

def calcular_soma(numero1, numero2):
    print(numero1 + numero2)

calcular_soma(10, 20)

Resultado:

30

Banner do e-book “Funções em Python”, de Tiago Sousa. À esquerda, aparece a capa 3D do livro com blocos coloridos representando funções, entrada, saída, validação, processamento, formatação e utilitários.

Parâmetros e argumentos

Os termos parâmetro e argumento estão relacionados, mas representam coisas diferentes.

Considere:

def somar(a, b):
    return a + b

Nesse caso, a e b são os parâmetros da função.

Quando fazemos:

somar(10, 20)

os valores 10 e 20 são os argumentos fornecidos na chamada.

Podemos visualizar assim:

PARÂMETROS
    ↓
def somar(a, b):
             ↑
         função

ARGUMENTOS
    ↓
somar(10, 20)

De forma simplificada:

  • parâmetro: variável definida na criação da função;

  • argumento: valor fornecido quando chamamos a função.


O que é return?

O return é utilizado para retornar um valor da função para o código que a chamou.

Observe:

def somar(a, b):
    return a + b

Podemos guardar o resultado em uma variável:

resultado = somar(10, 20)

print(resultado)

Resultado:

30

Isso é diferente de simplesmente utilizar print() dentro da função.

print() versus return

Veja:

def somar(a, b):
    print(a + b)

Essa função exibe o resultado.

Agora:

def somar(a, b):
    return a + b

Essa função retorna o resultado.

A diferença fica evidente neste exemplo:

def somar_com_print(a, b):
    print(a + b)


resultado = somar_com_print(10, 20)

print(resultado)

Resultado:

30
None

Isso acontece porque print() apenas exibe o valor. Ele não transforma automaticamente esse valor em retorno da função.

Já com return:

def somar(a, b):
    return a + b


resultado = somar(10, 20)

print(resultado)

Resultado:

30

Agora o valor 30 foi efetivamente retornado e armazenado em resultado.

Uma forma simples de lembrar

Pense assim:

print() → mostra algo na tela

return  → devolve algo para quem chamou a função

Essa diferença é fundamental para trabalhar corretamente com funções.


O que acontece depois de um return?

Quando o Python encontra um return, a execução da função termina naquele ponto.

Por exemplo:

def exemplo():
    print("Primeiro")
    return
    print("Segundo")

Ao chamar:

exemplo()

teremos:

Primeiro

A instrução:

print("Segundo")

não será executada.


O que é None em Python?

None representa a ausência de um valor.

Uma função que termina sem executar um return explícito retorna None. A documentação oficial do Python descreve esse comportamento para funções sem uma instrução return com valor.

Veja:

def mostrar_nome():
    print("Tiago")

Podemos fazer:

resultado = mostrar_nome()

print(resultado)

A saída será:

Tiago
None

A função exibiu Tiago, mas não retornou esse texto.

Por isso, a variável resultado recebe None.

Também podemos escrever explicitamente:

def exemplo():
    return None

Nesse caso, o retorno é claramente None.

None não é a mesma coisa que 0

É importante não confundir:

None

com:

0

0 é um número.

None representa ausência de valor.

Da mesma forma, None não é uma string vazia:

""

São valores diferentes.


Banner sobre expressões em Python com o título “Expressões em Python” e a chamada “Entenda como seu código calcula, compara e transforma valores”.

Retornando vários valores

Uma função pode retornar mais de um valor.

Por exemplo:

def calcular(a, b):
    soma = a + b
    multiplicacao = a * b

    return soma, multiplicacao

Podemos chamar a função e receber os dois resultados:

resultado = calcular(10, 5)

print(resultado)

Resultado:

(15, 50)

Python agrupa os valores retornados em uma tupla.

Também podemos desempacotar os valores diretamente:

soma, multiplicacao = calcular(10, 5)

print(soma)
print(multiplicacao)

Resultado:

15
50

Essa técnica é bastante útil quando uma função precisa fornecer mais de uma informação.

Outro exemplo

Podemos criar uma função para calcular informações de um produto:

def calcular_produto(preco, quantidade):
    total = preco * quantidade
    desconto = total * 0.10

    return total, desconto

Depois:

total, desconto = calcular_produto(100, 3)

print(f"Total: R$ {total:.2f}")
print(f"Desconto: R$ {desconto:.2f}")

Resultado:

Total: R$ 300.00
Desconto: R$ 30.00

Exercícios práticos

Agora é hora de colocar os conceitos em prática.

Tente resolver os exercícios antes de consultar as respostas.

Exercício 1 — Criando uma função

Crie uma função chamada mostrar_mensagem() que exiba:

Estou aprendendo funções em Python!

Depois, chame a função.


Exercício 2 — Função com parâmetro

Crie uma função chamada saudacao() que receba um nome como parâmetro e mostre:

Olá, Tiago!

quando receber:

saudacao("Tiago")

Exercício 3 — Somando dois números

Crie uma função chamada somar() que receba dois números e retorne a soma deles.

Teste com:

resultado = somar(15, 25)
print(resultado)

Resultado esperado:

40

Exercício 4 — Calculando o dobro

Crie uma função chamada dobro() que receba um número e retorne o dobro dele.

Exemplo:

print(dobro(8))

Resultado esperado:

16

Exercício 5 — Verificando a idade

Crie uma função chamada verificar_idade() que receba uma idade.

A função deve retornar:

Maior de idade

quando a idade for igual ou superior a 18.

Caso contrário, deve retornar:

Menor de idade

Exercício 6 — Retornando dois valores

Crie uma função chamada calcular() que receba dois números e retorne:

  1. a soma;

  2. a subtração.

Depois, armazene os dois resultados em variáveis diferentes.


Exercício 7 — Média de três notas

Crie uma função chamada calcular_media() que receba três notas e retorne a média.

Teste com:

media = calcular_media(7, 8, 9)

print(media)

Resultado esperado:

8.0

Respostas dos exercícios

Resposta 1

def mostrar_mensagem():
    print("Estou aprendendo funções em Python!")


mostrar_mensagem()

Resposta 2

def saudacao(nome):
    print(f"Olá, {nome}!")


saudacao("Tiago")

Resposta 3

def somar(a, b):
    return a + b


resultado = somar(15, 25)

print(resultado)

Resultado:

40

Resposta 4

def dobro(numero):
    return numero * 2


print(dobro(8))

Resultado:

16

Resposta 5

def verificar_idade(idade):
    if idade >= 18:
        return "Maior de idade"

    return "Menor de idade"


print(verificar_idade(20))
print(verificar_idade(15))

Resultado:

Maior de idade
Menor de idade

Resposta 6

def calcular(a, b):
    soma = a + b
    subtracao = a - b

    return soma, subtracao


soma, subtracao = calcular(10, 5)

print(soma)
print(subtracao)

Resultado:

15
5

Resposta 7

def calcular_media(nota1, nota2, nota3):
    return (nota1 + nota2 + nota3) / 3


media = calcular_media(7, 8, 9)

print(media)

Resultado:

8.0

Conclusão

As funções são fundamentais para escrever programas Python mais organizados, reutilizáveis e fáceis de manter.

Neste artigo, você aprendeu a:

  • criar funções utilizando def;

  • chamar funções;

  • utilizar parâmetros;

  • diferenciar parâmetros de argumentos;

  • utilizar return;

  • entender a diferença entre print() e return;

  • compreender o valor None;

  • retornar vários valores;

  • praticar os conceitos por meio de exercícios.

O próximo passo é começar a combinar funções com outros recursos da linguagem, como condicionais, listas, loops e dicionários. É dessa combinação que surgem programas cada vez mais completos.

Se você está seguindo uma trilha de aprendizado de Python, também vale continuar praticando com pequenos programas. Quanto mais você transformar conceitos isolados em funções reais, mais natural ficará a organização do seu código.

Continue aprendendo Python

Se você quer aprofundar seus conhecimentos, conheça também o e-book gratuito sobre Python, criado para ajudar iniciantes a evoluírem de forma progressiva e prática.

Baixe o e-book gratuito e continue sua jornada de aprendizado em Python.

Banner do e-book “Funções em Python”, de Tiago Sousa. À esquerda, aparece a capa 3D do livro com blocos coloridos representando funções, entrada, saída, validação, processamento, formatação e utilitários.

Leia Mais: