Como Criar uma Calculadora em Python Passo a Passo

Atualizado em: 13/07/2026
Tempo de leitura: 4 minutos
Foto de uma pessoa usando uma calculadora

Aprender como fazer uma calculadora em Python é uma ótima forma de praticar entrada de dados, operadores, funções, condicionais, laços e tratamento de erros. Neste guia, você começa com um código completo e funcional e, depois, entende cada parte para poder adaptar o projeto.

Como fazer uma calculadora em Python

Copie o código abaixo, salve-o em um arquivo chamado calculadora.py e execute com python calculadora.py.

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


def subtrair(a, b):
    return a - b


def multiplicar(a, b):
    return a * b


def dividir(a, b):
    if b == 0:
        raise ValueError("Não é possível dividir por zero.")
    return a / b


operacoes = {
    "1": ("Adição", somar),
    "2": ("Subtração", subtrair),
    "3": ("Multiplicação", multiplicar),
    "4": ("Divisão", dividir),
}

while True:
    print("\nCALCULADORA EM PYTHON")
    for codigo, (nome, _) in operacoes.items():
        print(f"{codigo} - {nome}")
    print("0 - Sair")

    escolha = input("Escolha uma opção: ").strip()

    if escolha == "0":
        print("Calculadora encerrada.")
        break

    if escolha not in operacoes:
        print("Opção inválida.")
        continue

    try:
        numero_1 = float(input("Digite o primeiro número: "))
        numero_2 = float(input("Digite o segundo número: "))
        nome, funcao = operacoes[escolha]
        resultado = funcao(numero_1, numero_2)
        print(f"{nome}: {resultado:g}")
    except ValueError as erro:
        print(f"Erro: {erro}")

Esse programa oferece as quatro operações básicas, impede divisão por zero, rejeita opções inexistentes e continua funcionando até que o usuário escolha sair.

Como o código funciona

1. Funções para cada operação

As funções somar(), subtrair(), multiplicar() e dividir() recebem dois números e devolvem o resultado. Separar as operações em funções deixa o código mais fácil de testar, reutilizar e ampliar.

2. Dicionário de operações

O dicionário operacoes relaciona cada opção do menu a um nome e a uma função. Assim, não é necessário criar uma cadeia longa de if e elif.

3. Entrada e conversão de números

A função input() sempre retorna texto. Por isso, o programa converte a entrada para float, permitindo trabalhar tanto com inteiros quanto com números decimais.

4. Tratamento de erros

O bloco try/except evita que a calculadora seja encerrada quando o usuário digita texto no lugar de um número ou tenta dividir por zero. Em vez de quebrar, o programa mostra uma mensagem clara e volta ao menu.

Versão simples para iniciantes

Para estudar apenas entrada de dados e operadores, você pode começar com uma versão menor:

numero_1 = float(input("Primeiro número: "))
numero_2 = float(input("Segundo número: "))
operacao = input("Operação (+, -, * ou /): ").strip()

if operacao == "+":
    resultado = numero_1 + numero_2
elif operacao == "-":
    resultado = numero_1 - numero_2
elif operacao == "*":
    resultado = numero_1 * numero_2
elif operacao == "/":
    if numero_2 == 0:
        resultado = "não é possível dividir por zero"
    else:
        resultado = numero_1 / numero_2
else:
    resultado = "operação inválida"

print(f"Resultado: {resultado}")

Essa versão é curta e didática. Quando ela estiver clara, avance para a primeira implementação, que usa funções, repetição e tratamento de exceções.

Calculadora com interface gráfica usando Tkinter

Depois da versão no terminal, você pode criar uma janela com botões e campos de texto usando o Tkinter, biblioteca gráfica incluída na maioria das instalações do Python.

import tkinter as tk
from tkinter import messagebox


def calcular():
    try:
        a = float(entrada_1.get())
        b = float(entrada_2.get())
        operacao = operador.get()

        if operacao == "+":
            resultado = a + b
        elif operacao == "-":
            resultado = a - b
        elif operacao == "*":
            resultado = a * b
        elif operacao == "/":
            if b == 0:
                raise ValueError("Não é possível dividir por zero.")
            resultado = a / b
        else:
            raise ValueError("Escolha uma operação válida.")

        texto_resultado.config(text=f"Resultado: {resultado:g}")
    except ValueError as erro:
        messagebox.showerror("Erro", str(erro))


janela = tk.Tk()
janela.title("Calculadora em Python")
janela.resizable(False, False)

entrada_1 = tk.Entry(janela)
entrada_1.grid(row=0, column=0, padx=8, pady=8)

operador = tk.StringVar(value="+")
tk.OptionMenu(janela, operador, "+", "-", "*", "/").grid(row=0, column=1)

entrada_2 = tk.Entry(janela)
entrada_2.grid(row=0, column=2, padx=8, pady=8)

tk.Button(janela, text="Calcular", command=calcular).grid(
    row=1, column=0, columnspan=3, pady=8
)

texto_resultado = tk.Label(janela, text="Resultado: ")
texto_resultado.grid(row=2, column=0, columnspan=3, pady=8)

janela.mainloop()

Veja o guia completo de Tkinter e interfaces gráficas em Python para entender janelas, widgets, eventos e organização do layout.

Erros comuns ao criar a calculadora

  • Esquecer de converter o input: sem int() ou float(), o Python trata os valores como texto.
  • Não validar a divisão por zero: essa operação gera erro e deve ser verificada.
  • Usar muitos blocos condicionais repetidos: funções e dicionários deixam o programa mais organizado.
  • Não tratar entradas inválidas: um try/except evita encerramentos inesperados.
  • Misturar interface e lógica: mantenha os cálculos em funções independentes sempre que possível.

Ideias para evoluir o projeto

  1. Adicionar potência, raiz quadrada, porcentagem e módulo.
  2. Guardar um histórico dos cálculos realizados.
  3. Criar testes automatizados para cada função.
  4. Separar o projeto em arquivos, como operacoes.py e app.py.
  5. Transformar a calculadora em uma aplicação gráfica mais completa.
https://youtu.be/3mJf4Pe0wos

Perguntas frequentes

Qual tipo numérico devo usar?

Use int quando aceitar somente números inteiros e float quando a calculadora precisar trabalhar com casas decimais.

Como impedir que o programa feche após um cálculo?

Coloque o menu dentro de um laço while e use break apenas quando o usuário selecionar a opção de sair.

Por que usar funções?

Funções reduzem repetição, facilitam testes e permitem incluir novas operações sem reescrever o programa inteiro.

É possível criar uma calculadora científica?

Sim. O módulo math oferece funções como raiz quadrada, seno, cosseno e logaritmo.

Conclusão

Uma calculadora em Python é um projeto pequeno, mas reúne conceitos fundamentais da linguagem. Comece pela versão simples, avance para funções e tratamento de erros e, por fim, experimente uma interface com Tkinter. Esse caminho transforma um exercício básico em um projeto bem estruturado para o seu portfólio.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Pesquisa em documentos PDF com Python e RAG
    Projetos
    Foto de perfil de Leandro Hirt da Academify

    Como criar um chatbot com PDFs e RAG em Python

    Aprenda a criar um chatbot com PDFs e RAG em Python, usando busca semântica para encontrar trechos e responder com

    Ler mais

    Tempo de leitura: 6 minutos
    23/07/2026
    Landing page simples criada com Python e Tailwind CSS
    Projetos
    Foto de perfil de Leandro Hirt da Academify

    Como criar uma landing page simples com Python e Tailwind CSS

    Você já sentiu a necessidade de colocar uma ideia no ar rapidamente, mas se viu travado na complexidade do desenvolvimento

    Ler mais

    Tempo de leitura: 11 minutos
    19/04/2026
    Sistema de tradução automática desenvolvido com Python
    Projetos
    Foto de perfil de Leandro Hirt da Academify

    Como criar um sistema de tradução automática com Python

    Criar um sistema de tradução automática com Python é uma das formas mais fascinantes de entrar no mundo da Inteligência

    Ler mais

    Tempo de leitura: 10 minutos
    17/04/2026
    Sistema de lembretes e alarmes desenvolvido com Python
    Projetos
    Foto de perfil de Leandro Hirt da Academify

    Como criar um sistema de lembretes com alarme em Python

    Criar um sistema de lembretes com alarme em Python é um dos projetos mais gratificantes para quem está dando os

    Ler mais

    Tempo de leitura: 10 minutos
    10/04/2026
    Extração de dados de tabelas de sites usando Python e pandas
    Projetos
    Foto de perfil de Leandro Hirt da Academify

    Como extrair dados de tabelas em sites com Python e Pandas

    Você já se deparou com um site repleto de informações úteis organizadas em tabelas, mas sentiu que copiar e colar

    Ler mais

    Tempo de leitura: 10 minutos
    09/04/2026
    Conversão de áudio para texto usando Python gratuitamente
    Projetos
    Foto de perfil de Leandro Hirt da Academify

    Como converter áudio em texto com Python de forma gratuita

    Transformar arquivos de áudio em texto é uma das tarefas mais úteis e requisitadas na era da inteligência artificial e

    Ler mais

    Tempo de leitura: 10 minutos
    08/04/2026