Tipos de Dados em Python: int, float, str, list e dict

Tempo de leitura: 14 minutos
Pessoa pensando com um monitor desfocado ao fundo

Quando você começa a programar em Python, logo percebe que precisa armazenar diferentes tipos de informações. Números, textos, listas de produtos, dados de usuários. Cada tipo de dado tem características próprias que definem como você pode usá-los no seu código. Entender esses tipos é essencial para criar programas que funcionem corretamente.

Neste guia completo, você vai aprender tudo sobre os principais tipos de dados em Python. Vamos explorar números inteiros, decimais, textos, listas e dicionários. Com exemplos práticos e diretos, você vai dominar cada tipo e saber exatamente quando usar cada um deles.

YouTube player

Créditos: Canal Refatorando

O que são Tipos de Dados em Python

Tipos de dados representam as diferentes categorias de valores que você pode trabalhar no Python. Cada tipo possui operações e características específicas. Um número permite cálculos matemáticos. Um texto permite manipulação de caracteres. Uma lista armazena múltiplos valores em sequência.

O Python é uma linguagem de tipagem dinâmica. Isso significa que você não precisa declarar o tipo de uma variável antes de usá-la. O próprio Python identifica automaticamente qual tipo de dado você está armazenando. Quando você escreve idade = 25, o Python entende que idade é um número inteiro.

Para verificar o tipo de qualquer variável, use a função **type()**. Essa função retorna o tipo exato do dado. Por exemplo, type(25) retorna <class 'int'>, indicando que 25 é um número inteiro. Essa flexibilidade torna o Python mais fácil de aprender, mas também exige atenção para evitar misturar tipos incompatíveis.

Int: Números Inteiros no Python

O tipo **int** representa números inteiros em Python. São valores sem casas decimais, positivos ou negativos. Use int para contar coisas, representar idades, anos, quantidades discretas. Qualquer número sem ponto decimal é automaticamente tratado como int.

Exemplos de números inteiros: 10, -5, 0, 1000000. Você pode realizar operações matemáticas básicas com eles. Soma, subtração, multiplicação, divisão. A divisão de dois inteiros pode resultar em um float se houver resto.

Python
quantidade = 50
temperatura = -10
ano_nascimento = 1990

resultado = quantidade + 20  # 70
dobro = quantidade * 2       # 100

O Python não tem limite de tamanho para números inteiros. Você pode trabalhar com valores extremamente grandes sem problemas. Diferente de outras linguagens que limitam o tamanho dos inteiros, Python gerencia automaticamente a memória necessária. Isso torna int muito flexível para cálculos científicos e financeiros.

Para converter outros tipos em int, use a função int(). Ela transforma strings numéricas ou floats em inteiros. Atenção: ao converter float para int, o Python descarta a parte decimal sem arredondar. Por exemplo, int(9.9) resulta em 9, não em 10.

Float: Números Decimais e Ponto Flutuante

O tipo **float** armazena números com casas decimais. Use float quando precisar de precisão fracionária. Preços, medidas, cálculos científicos, percentuais. Qualquer número com ponto decimal é automaticamente um float.

Exemplos comuns de float: 3.14, -0.5, 2.0, 99.99. Mesmo números redondos como 5.0 são floats se escritos com ponto. O ponto decimal define o tipo, não o valor em si.

Python
preco = 49.90
altura = 1.75
taxa = 0.05

total = preco * (1 + taxa)  # 52.395
media = (8.5 + 9.0 + 7.5) / 3  # 8.333...

Floats podem ter pequenas imprecisões devido à forma como computadores armazenam números decimais. Isso é normal e acontece em todas as linguagens. Para trabalhos que exigem precisão exata, como cálculos financeiros, use a biblioteca decimal do Python.

Você pode converter int ou string em float usando float(). Por exemplo, float("3.14") transforma a string em número decimal. Operações entre int e float sempre resultam em float. Se você somar 5 + 2.0, o resultado será 7.0.

Str: Trabalhando com Textos e Strings

O tipo **str** representa textos e cadeias de caracteres. Use strings para armazenar nomes, mensagens, descrições, qualquer informação textual. Strings em Python são sempre delimitadas por aspas simples ou duplas.

Você pode criar strings de várias formas: "Olá", 'Python', """Texto longo""". Aspas triplas permitem textos com múltiplas linhas. A escolha entre aspas simples ou duplas é sua, mas mantenha consistência no código.

Python
nome = "Maria Silva"
mensagem = 'Bem-vindo ao Python'
descricao = """Este é um texto
que ocupa várias linhas
no código"""

saudacao = "Olá, " + nome  # Concatenação
tamanho = len(mensagem)     # 21 caracteres

Strings em Python são imutáveis. Você não pode alterar caracteres individuais depois de criar a string. Para modificar texto, crie uma nova string. Python oferece muitos métodos úteis para trabalhar com strings: upper(), lower(), replace(), split().

Você pode acessar caracteres individuais usando índices: nome[0] retorna o primeiro caractere. Use fatiamento para extrair partes: nome[0:5] retorna os cinco primeiros caracteres. Para converter outros tipos em string, use str(). Por exemplo, str(25) transforma o número em texto.

List: Armazenando Múltiplos Valores em Sequência

O tipo **list** permite armazenar múltiplos valores em uma única variável. Listas são ordenadas, mutáveis e permitem elementos duplicados. Use listas quando precisar agrupar dados relacionados que podem mudar ao longo do programa.

Crie listas usando colchetes: numeros = [1, 2, 3]. Listas podem conter qualquer tipo de dado. Você pode misturar números, textos, até outras listas dentro de uma lista. Essa flexibilidade torna listas extremamente versáteis.

Python
frutas = ["maçã", "banana", "laranja"]
numeros = [10, 20, 30, 40, 50]
misto = [1, "texto", 3.14, True]

primeiro = frutas[0]     # "maçã"
ultimo = frutas[-1]       # "laranja"
frutas.append("uva")      # Adiciona no final
frutas.remove("banana")   # Remove elemento

Listas são mutáveis. Você pode adicionar, remover ou modificar elementos depois de criar a lista. Use append() para adicionar no final. Use insert() para adicionar em posição específica. Use remove() para excluir um elemento pelo valor.

Acesse elementos pelo índice: numeros[0] retorna o primeiro elemento. Índices negativos contam do final: numeros[-1] retorna o último. Use loops for para percorrer todos os elementos. Listas suportam operações como ordenação, reversão e contagem.

Dict: Organizando Dados com Dicionários

O tipo **dict** armazena dados em pares de chave e valor. Dicionários são ideais para representar estruturas de dados complexas. Use dict quando precisar associar informações relacionadas, como dados de um usuário ou configurações de sistema.

Crie dicionários usando chaves: pessoa = {"nome": "João", "idade": 30}. Cada chave deve ser única. Os valores podem ser de qualquer tipo. Você acessa valores pela chave, não por posição numérica.

Python
usuario = {
    "nome": "Ana Costa",
    "email": "ana@email.com",
    "idade": 28,
    "ativo": True
}

nome_usuario = usuario["nome"]      # "Ana Costa"
usuario["cidade"] = "São Paulo"     # Adiciona nova chave
usuario["idade"] = 29               # Atualiza valor
del usuario["ativo"]                # Remove chave

Dicionários são mutáveis. Você pode adicionar, modificar ou remover pares chave-valor. Use keys() para obter todas as chaves. Use values() para obter todos os valores. Use items() para obter pares chave-valor.

Ao tentar acessar uma chave inexistente, Python gera erro. Para evitar isso, use o método get(): usuario.get("telefone", "Não informado"). Esse método retorna um valor padrão se a chave não existir. Dicionários são fundamentais para trabalhar com dados em JSON.

Conversão Entre Tipos de Dados

Python permite converter valores entre diferentes tipos. Esse processo se chama conversão de tipo ou casting. Use as funções int(), float(), str() para transformar dados conforme necessário.

Converta string para número: numero = int("42"). A string deve conter apenas dígitos válidos. Se tentar converter texto não numérico, Python gera erro. Sempre valide os dados antes de converter.

Python
# String para número
texto = "100"
numero = int(texto)        # 100
decimal = float("3.14")    # 3.14

# Número para string
idade = 25
texto_idade = str(idade)   # "25"

# Float para int (perde decimais)
valor = 9.99
inteiro = int(valor)       # 9

# Int para float
x = 10
y = float(x)               # 10.0

Ao converter float para int, o Python trunca a parte decimal. Não há arredondamento automático. Se precisa arredondar, use a função round() antes de converter. Por exemplo, int(round(9.7)) resulta em 10.

Listas e dicionários também podem ser convertidos entre si em alguns casos. Use list() para transformar outros iteráveis em listas. Use dict() para criar dicionários a partir de tuplas de pares. Entender conversões ajuda a manipular dados de diferentes fontes.

Comparando Tipos de Dados

Cada tipo de dado tem características únicas que determinam quando usá-lo. Números inteiros servem para contagens e valores exatos. Floats para medidas que exigem precisão decimal. Strings para qualquer informação textual.

Listas armazenam coleções ordenadas que podem mudar. Dicionários organizam dados relacionados em pares chave-valor. A escolha do tipo correto torna seu código mais eficiente e legível.

TipoMutávelOrdenadoUso Principal
intNãoN/ANúmeros inteiros
floatNãoN/ANúmeros decimais
strNãoSimTextos
listSimSimColeções ordenadas
dictSimNão*Pares chave-valor

*Dicionários mantêm ordem de inserção desde Python 3.7, mas não são indexados por posição.

Tipos imutáveis como int, float e str não podem ser alterados após criação. Toda modificação cria um novo objeto. Tipos mutáveis como list e dict permitem alterações no mesmo objeto. Essa diferença afeta como você trabalha com cada tipo.

Operações Comuns com Cada Tipo

Cada tipo de dado suporta operações específicas. Números permitem operadores matemáticos: adição, subtração, multiplicação, divisão. Strings permitem concatenação com o operador +. Listas permitem adição de elementos e ordenação.

Para números inteiros e floats, use operadores aritméticos básicos. Divisão sempre retorna float, mesmo entre inteiros. Use // para divisão inteira. Use % para resto da divisão. Use ** para potenciação.

Python
# Operações com números
soma = 10 + 5           # 15
divisao = 10 / 3        # 3.333...
div_inteira = 10 // 3   # 3
resto = 10 % 3          # 1
potencia = 2 ** 3       # 8

# Operações com strings
nome = "João"
sobrenome = "Silva"
completo = nome + " " + sobrenome  # "João Silva"
repetido = nome * 3     # "JoãoJoãoJoão"

# Operações com listas
lista = [1, 2, 3]
lista.extend([4, 5])    # [1, 2, 3, 4, 5]
lista.sort()            # Ordena a lista
tamanho = len(lista)    # 5

# Operações com dicionários
pessoa = {"nome": "Maria", "idade": 25}
pessoa.update({"cidade": "Rio"})  # Adiciona/atualiza
chaves = pessoa.keys()   # dict_keys(['nome', 'idade', 'cidade'])

Strings suportam métodos úteis de manipulação. Use upper() e lower() para mudar maiúsculas. Use strip() para remover espaços. Use split() para dividir em lista. Use replace() para substituir partes do texto.

Verificando Tipos de Dados

Verificar o tipo de uma variável ajuda a evitar erros. Use a função type() para descobrir o tipo exato. Use isinstance() para verificar se um valor pertence a determinado tipo. Essa prática é essencial ao trabalhar com entrada de dados do usuário.

Python
idade = 25
print(type(idade))        # <class 'int'>

preco = 19.90
print(type(preco))        # <class 'float'>

nome = "Python"
print(type(nome))         # <class 'str'>

# Verificando tipos
if isinstance(idade, int):
    print("É um número inteiro")

if isinstance(preco, (int, float)):
    print("É um número")

A função isinstance() aceita uma tupla de tipos. Isso permite verificar múltiplos tipos de uma vez. É mais seguro que usar type() diretamente em comparações. Use isinstance para validar dados antes de processá-los.

Conhecer os tipos ajuda a depurar código. Muitos erros acontecem ao misturar tipos incompatíveis. Por exemplo, tentar somar string com número. Verificar tipos antes de operações críticas previne falhas no programa.

Boas Práticas com Tipos de Dados

Use o tipo mais adequado para cada situação. Não armazene números em strings se vai fazer cálculos. Não use listas quando precisa de chaves descritivas. Escolher o tipo correto torna o código mais claro e eficiente.

Evite misturar tipos desnecessariamente. Mantenha consistência nas estruturas de dados. Se uma lista deve conter apenas números, não adicione strings. Isso facilita tratamento de erros e manutenção futura.

  • Valide dados antes de converter tipos
  • Use type hints para documentar tipos esperados
  • Prefira dicionários para dados estruturados
  • Use listas para coleções de itens similares
  • Escolha nomes descritivos de variáveis que indiquem o tipo
  • Documente tipos esperados em funções

Aproveite a tipagem dinâmica do Python sem abusar dela. Em projetos maiores, considere usar type hints. Eles não afetam a execução, mas ajudam editores de código a detectar erros. Por exemplo: def calcular(x: int, y: int) -> int:.

Exemplos Práticos do Dia a Dia

Veja como os tipos de dados aparecem em situações reais de programação. Estes exemplos mostram aplicações práticas que você encontrará em projetos reais.

Sistema de Cadastro Simples

Python
# Cadastro de produto usando dicionário
produto = {
    "nome": "Notebook",
    "preco": 2999.90,
    "estoque": 15,
    "categorias": ["Eletrônicos", "Informática"],
    "disponivel": True
}

# Calculando valor total em estoque
valor_total = produto["preco"] * produto["estoque"]
print(f"Valor total: R$ {valor_total:.2f}")

# Adicionando nova categoria
produto["categorias"].append("Ofertas")

# Atualizando estoque
produto["estoque"] -= 1

Cálculo de Média de Notas

Python
# Armazenando notas em lista
notas = [8.5, 7.0, 9.0, 6.5, 8.0]

# Calculando média
media = sum(notas) / len(notas)
print(f"Média: {media:.2f}")

# Verificando aprovação
aprovado = media >= 7.0
situacao = "Aprovado" if aprovado else "Reprovado"
print(f"Situação: {situacao}")

Processamento de Lista de Compras

Python
# Lista de compras com preços
compras = [
    {"item": "Arroz", "preco": 25.90, "quantidade": 2},
    {"item": "Feijão", "preco": 8.50, "quantidade": 3},
    {"item": "Óleo", "preco": 7.20, "quantidade": 1}
]

# Calculando total
total = 0
for compra in compras:
    subtotal = compra["preco"] * compra["quantidade"]
    total += subtotal
    print(f"{compra['item']}: R$ {subtotal:.2f}")

print(f"\nTotal da compra: R$ {total:.2f}")

Esses exemplos demonstram como combinar diferentes tipos de dados para resolver problemas reais. Note como dicionários organizam dados relacionados. Como listas armazenam múltiplos valores. Como números permitem cálculos precisos.

Perguntas Frequentes (FAQ)

1. Qual a diferença entre int e float no Python?

Int representa números inteiros sem decimais, enquanto float armazena números com casas decimais e maior precisão.

2. Posso misturar tipos diferentes em uma lista?

Sim, Python permite listas com tipos diferentes, mas não é recomendado para manter código organizado.

3. Como converter string em número no Python?

Use int() para converter em inteiro ou float() para decimal. Exemplo: numero = int(“42”).

4. O que acontece se somar int com float?

O resultado sempre será float. Python converte automaticamente o int em float antes da operação.

5. Strings são mutáveis no Python?

Não, strings são imutáveis. Qualquer modificação cria uma nova string na memória.

6. Quando usar lista ao invés de dicionário?

Use lista para coleções ordenadas de itens similares. Use dicionário quando precisa associar chaves a valores.

7. Como verificar se uma variável é do tipo string?

Use isinstance(variavel, str) que retorna True se for string ou type(variavel) para ver o tipo.

8. Posso usar números como chaves em dicionários?

Sim, qualquer tipo imutável pode ser chave em dicionário, incluindo números e tuplas.

9. O que significa tipagem dinâmica no Python?

Significa que Python identifica automaticamente o tipo da variável, sem necessidade de declaração prévia.

10. Como criar uma lista vazia no Python?

Use colchetes vazios: lista = [] ou a função list(): lista = list().

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Ilustração de lista com itens marcados e ícone do Python
    Fundamentos
    Foto do Leandro Hirt

    Como Ordenar Listas no Python (Sort vs Sorted)

    Você já ficou confuso sobre quando usar sort() ou sorted() para organizar suas listas em Python? Não está sozinho. Esses

    Ler mais

    Tempo de leitura: 12 minutos
    20/12/2025
    Logo do Python com uma faca, simbolizando fatiamento
    Fundamentos
    Foto do Leandro Hirt

    Fatiamento em Python: Tudo Sobre Slicing

    O fatiamento (ou slicing) é uma técnica fundamental em Python que permite extrair partes específicas de sequências como listas, strings

    Ler mais

    Tempo de leitura: 11 minutos
    13/12/2025
    Logo CSV e logo do Python com um símbolo de '+'
    Fundamentos
    Foto do Leandro Hirt

    Como trabalhar com arquivos CSV no Python

    Aprenda a ler, escrever e manipular arquivos CSV usando Python. Guia completo com exemplos práticos da biblioteca csv padrão e

    Ler mais

    Tempo de leitura: 12 minutos
    10/12/2025
    Foto de um calendário
    FundamentosBibliotecas
    Foto do Leandro Hirt

    Datas e Horas no Python com datetime

    Aprenda a trabalhar com datas e horas no Python usando o módulo datetime. Guia completo com exemplos práticos de formatação,

    Ler mais

    Tempo de leitura: 13 minutos
    10/12/2025
    Logo do Python + texto 'JSON'
    Fundamentos
    Foto do Leandro Hirt

    Como Trabalhar com JSON no Python

    JSON (JavaScript Object Notation) é um dos formatos de dados mais populares do mundo. Se você trabalha com APIs, armazenamento

    Ler mais

    Tempo de leitura: 13 minutos
    09/12/2025
    Programador pensando olhando para a tela
    Fundamentos
    Foto do Leandro Hirt

    Lógica de Programação com Python para Iniciantes

    Aprender lógica de programação com Python é uma das formas mais simples e agradáveis de começar no universo da tecnologia.

    Ler mais

    Tempo de leitura: 8 minutos
    09/12/2025