Pular para o conteúdo principal

Tipos de dados Python explicados: Um guia para iniciantes

Aprenda os diferentes tipos de dados do Python e como usá-los de forma eficaz.
Actualizado 8 de fev. de 2025  · 15 min de leitura

Python é uma das linguagens de programação mais usadas em 2025, amplamente aclamada por sua simplicidade, legibilidade e ecossistema de bibliotecas e estruturas para ciência de dados, inteligência artificial e aprendizado de máquina.

Além disso, o Python oferece suporte a muitos tipos de dados, o que o torna uma ótima ferramenta para resolver problemas complexos e manipular dados. Ele ajuda os desenvolvedores a criar aplicativos úteis para o mundo real.

Neste blog voltado para iniciantes, veremos os principais tipos de dados do Python. Exploraremos seus recursos exclusivos, quando usá-los e forneceremos exemplos práticos para cada um deles.

Visão geral dos tipos de dados Python

Os tipos de dados em Python se enquadram em várias categorias, cada uma delas adaptada para lidar com tipos específicos de dados e operações. 

Entender essas categorias é um exercício teórico e uma habilidade prática que ajudará você a escrever um código eficiente e sem bugs. A seleção do tipo de dados correto pode afetar significativamente ouso da memória , a velocidade de computação e a clareza do código.

Vamos explorar essas categorias em detalhes, destacando seus casos de uso e aplicativos.

Tipos de dados incorporados

O Python oferece uma variedade de tipos de dados incorporados. A tabela abaixo categoriza esses tipos de dados para ajudar você a entender rapidamente o uso deles:

Categoria

Tipos de dados

Numérico

int, float, complexo

Sequência

str, lista, tupla

Mapeamento

ditar

Conjunto

set, frozenset

Booleano

bool

NoneType

NoneType

Digitação dinâmica

Python é uma linguagem de programação tipada dinamicamente, o que significa que você não precisa declarar explicitamente o tipo de uma variável no momento em que a define. Em vez disso, o interpretador Python determina e atribui um tipo dinamicamente com base no valor fornecido à variável. 

Para você entender como o Python é diferente, vamos compará-lo com uma linguagem estaticamente tipada como Java

Em Java, você deve declarar explicitamente o tipo de cada variável, conforme mostrado abaixo:

int x = 10;   // Integer
double y = 10.5; // Float
String z = "Hello"; // String

Por outro lado, o Python permite que você atribua valores diretamente sem especificar o tipo, o que o torna mais flexível e conciso:

x = 10  # Integer
y = 10.5  # Float
z = "Hello"  # String

No entanto, essa flexibilidade exige que você esteja atento a alterações de tipo não intencionais durante o tempo de execução, o que pode levar a erros. 

A digitação dinâmica é um dos motivos pelos quais o Python é tão popular entre os iniciantes, especialmente porque oferece um equilíbrio entre simplicidade e potência. 

Agora, vamos dar uma olhada em todos os tipos de dados em detalhes.

Aprenda Python do zero

Domine o Python para a ciência de dados e adquira habilidades que estão em alta.
Comece a aprender de graça

1. Tipos de dados numéricos

O Python oferece vários tipos de dados numéricos para lidar com diferentes tipos de valores numéricos.

1.1. Inteiros (int): 

Números inteiros, positivos ou negativos, sem um componente fracionário. 

Esses são valores numéricos fundamentais que representam contagens ou medições discretas. 

Ao contrário dos números de ponto flutuante, os números inteiros são exatos e não envolvem aproximações, o que os torna ideais para cenários em que a precisão é importante, como indexação ou contagem de itens.

age = 25

1.2. Números de ponto flutuante (float):

Números com pontos decimais ou em forma exponencial. 

Esses valores são comumente usados em cenários de precisão fracionária, como cálculos financeiros, medições científicas e programação de gráficos. 

Os números de ponto flutuante também podem representar valores extremamente grandes ou pequenos usando a notação exponencial, o que os torna versáteis para várias aplicações numéricas.

price = 19.99

1.3. Números complexos (complexos): 

Números com uma parte real e imaginária. Os números complexos são úteis em áreas como engenharia elétrica, física e processamento de sinais, onde as operações que envolvem números imaginários são comuns.

O Python representa números complexos como a + bj, em que a é a parte real e b é a parte imaginária. Esse suporte integrado simplifica os cálculos que, de outra forma, exigiriam bibliotecas externas ou implementações personalizadas em outras linguagens.

z = 2 + 3j

2. Tipos de dados de sequência

Além dos números, o Python também fornece tipos de dados de sequência que armazenam coleções ordenadas de elementos.

2.1. Strings (str):

Sequências ordenadas de caracteres entre aspas simples ou duplas. As cadeias de caracteres são um dos tipos de dados mais versáteis do Python, permitindo que você armazene e manipule dados baseados em texto. 

Eles são comumente usados em tarefas como lidar com a entrada do usuário, criar mensagens ou até mesmo processar grandes conjuntos de dados de texto. 

O Python oferece uma variedade de métodos internos, como .lower(), .upper(), .replace() e .split(), que tornam o trabalho com strings altamente eficiente.

greeting = "Welcome to Python!"

2.2. Listas (list):

As listas são coleções ordenadas e mutáveis de itens, que podem conter elementos de diferentes tipos de dados. 

Essa flexibilidade faz das listas um dos tipos de dados mais usados no Python, adequado para tarefas que vão desde o simples armazenamento até a manipulação complexa de dados. 

As listas permitem o redimensionamento dinâmico e suportam várias operações, como fatiar, anexar e remover elementos, o que as torna uma estrutura ideal para cenários que exigem dados ordenados e alteráveis.

fruits = ["apple", "banana", "cherry"]

2.3. Tuplas (tuple):

Coleções ordenadas e imutáveis de itens. As tuplas são usadas com frequência para armazenar coleções fixas de dados em que a imutabilidade é importante, como coordenadas geográficas, códigos de cores RGB ou registros de banco de dados. 

Ao contrário das listas, as tuplas não podem ser modificadas depois de criadas, o que as torna mais rápidas e mais seguras em cenários em que a integridade dos dados é fundamental.

dimensions = (1920, 1080)

3. Mapeamento de tipos de dados

Embora as sequências armazenem coleções ordenadas de elementos, o Python também fornece tipos de dados de mapeamento que associam chaves a valores. O tipo de mapeamento mais comumente usado é o dicionário.

3.1. Dicionários (dict)

Coleções de pares de valores-chave, em que as chaves são exclusivas e imutáveis. 

Os dicionários são altamente versáteis e permitem que você organize e recupere dados com eficiência usando chaves significativas em vez de depender de índices numéricos. Isso os torna particularmente úteis para representar dados estruturados, como objetos JSON ou definições de configuração. 

Os dicionários Python também oferecem suporte a várias operações, como adição, atualização ou exclusão de pares de valores-chave, o que os torna uma ferramenta essencial em muitos cenários de programação.

person = {"name": "Alice", "age": 30}

4. Conjuntos

Além de sequências e mapeamentos, o Python fornece tipos de dados de conjunto, que armazenam coleções de elementos exclusivos sem uma ordem específica.

4.1. Conjuntos (set)

Coleções não ordenadas de elementos exclusivos. Os conjuntos são particularmente úteis quando você precisa garantir que seus dados não contenham duplicatas, como em testes de associação ou na remoção de entradas duplicadas de uma lista. 

Eles suportam operações matemáticas como união, interseção e diferença, o que os torna ferramentas poderosas para resolver problemas que envolvem conjuntos de dados.

unique_numbers = {1, 2, 3, 4, 5}

4.2. Conjuntos congelados (frozenset)

Uma versão imutável de um conjunto, o que significa que, uma vez criados, seus elementos não podem ser modificados. 

Conjuntos congelados são úteis em cenários em que você precisa de uma coleção hashable de itens exclusivos, como usar um conjunto como chave em um dicionário ou garantir a integridade de dados que não devem ser alterados. 

Eles mantêm todas as propriedades dos conjuntos regulares, como o suporte a operações matemáticas como união e interseção, mas com o benefício adicional da imutabilidade.

immutable_set = frozenset([1, 2, 3])

Para saber mais sobre isso, consulte o excelente tutorial sobre Conjuntos Python e Teoria dos Conjuntos.

5. Tipo de dados booleano

Em muitos cenários de programação, precisamos de uma maneira de representar valores verdadeiros. O Python fornece o tipo de dados booleano, que desempenha um papel na tomada de decisões e no fluxo de controle.

5.1. Booleano

Valores lógicos, seja True ou False. Esses valores são frequentemente usados em processos de tomada de decisão, como instruções condicionais e loops. 

Os booleanos são fundamentais para o fluxo de controle na programação, permitindo que você escreva códigos que reajam dinamicamente com base nas condições. 

Em Python, os valores booleanos também podem resultar de comparações (por exemplo, 5 > 3 é avaliado como True ) ou operações lógicas (por exemplo, True and False é avaliado como False ).

is_active = True

6. NoneType

Além dos tipos numéricos, de sequência, de mapeamento, de conjunto e booleanos, o Python inclui um tipo de dados especial para representar a ausência de um valor.

6.1 Nenhum (NoneType)

Representa a ausência de um valor ou um valor nulo. 

O tipo None é usado com frequência para indicar um espaço reservado, variáveis não inicializadas ou o valor de retorno padrão de funções que não retornam nada explicitamente .

É útil, especialmente nos casos em que uma operação pode não produzir um resultado ou quando uma variável precisa ser definida sem um valor inicial.

result = None

Tipos de dados avançados e bibliotecas externas

Além dos tipos fundamentais incorporados, o Python também fornece tipos de dados avançados para lidar com casos de uso mais especializados. Vamos dar uma olhada nos tipos mais comuns.

1. Objetos de byte

Os objetos Byte são projetados especificamente para lidar com dados binários, incluindo arquivos, multimídia e pacotes de rede. Esses tipos de dados são particularmente úteis quando você trabalha com dados não textuais. 

O tipo bytes é imutável, o que o torna adequado para operações somente de leitura, enquanto o bytearray oferece uma alternativa mutável para cenários em que são necessárias modificações. O tipo memory view permite o acesso ao buffer de dados interno de um objeto sem copiá-lo, melhorando o desempenho em aplicativos com uso intenso de memória.

data = b"hello"  # Immutable bytes object
mutable_data = bytearray(b"hello")  # Mutable bytearray object
view = memoryview(mutable_data)  # Memoryview of the bytearray

2. Matrizes NumPy

As matrizes NumPy são matrizes multidimensionais altamente eficientes, projetadas para cálculos numéricos. 

Ao contrário das listas do Python, os arrays do NumPy oferecem desempenho superior e são adaptados para operações matemáticas. Eles são uma pedra angular da computação científica, potencializando tarefas como álgebra linear, transformações de Fourier e análise estatística. 

Eles suportam transmissão, o que permite operações em matrizes de diferentes formatos, aumentando ainda mais sua versatilidade.

import numpy as np

# Creating a 1D array
data = np.array([1, 2, 3, 4])

# Creating a 2D array
data_2d = np.array([[1, 2], [3, 4]])

# Performing element-wise operations
squared = data ** 2

Se você quiser saber mais sobre o NumPy, inscreva-se neste curso gratuito de Introdução ao NumPy para iniciantes.

3. Pandas DataFrames

Os Pandas DataFrames são estruturas de dados tabulares que oferecem ferramentas poderosas de manipulação e análise de dados. Com linhas e colunas rotuladas, eles tornam o manuseio de dados estruturados intuitivo e eficiente.

Os DataFrames são parte integrante dos fluxos de trabalho da ciência de dados, permitindo tarefas como filtragem, agrupamento, fusão e agregação de grandes conjuntos de dados. Além disso, eles se integram perfeitamente a outras bibliotecas, tornando o pandas indispensável para a análise de dados moderna.

import pandas as pd

# Creating a simple DataFrame
data = pd.DataFrame({"Name": ["Alice", "Bob"], "Age": [25, 30]})

# Filtering rows based on a condition
adults = data[data["Age"] > 18]

# Adding a new column
data["IsAdult"] = data["Age"] > 18

# show data
data

Uma captura de tela do Dataframe do Pandas exibido no Notebook

DataFrame do Pandas exibido no notebook

Confira a folha de dicas do pandas, que inclui exemplos de código e é uma referência rápida para a manipulação de dados com o pandas.

Se você quiser saber mais sobre manipulação avançada de dados usando Pandas DataFrames, inscreva-se no curso gratuito Manipulação de dados com pandas.

Conversão de tipos em Python

A conversão de tipos refere-se ao processo de conversão de um valor de um tipo de dados para outro. Na programação, isso geralmente é necessário para garantir que as operações sejam executadas corretamente e que os dados possam ser manipulados da maneira desejada. 

O manuseio da conversão de tipos pelo Python é altamente flexível, oferecendo métodos automáticos (implícitos) e manuais (explícitos). 

1. Conversão implícita de tipos

O Python converte automaticamente um tipo de dados em outro nas expressões quando um tipo de dados menor ou menos preciso é combinado com um tipo maior ou mais preciso. 

Por exemplo, a combinação de um int com um float resulta em um float, garantindo que nenhuma precisão seja perdida durante os cálculos.

result = 5 + 3.5
print(result)
>>> 8.5 # This is a float

2. Conversão explícita de tipos

A conversão explícita de tipos, ou type casting, permite que você converta manualmente um valor de um tipo de dados para outro usando funções integradas como int(), float(), str(), entre outras .

Isso é útil em cenários em que a conversão implícita não ocorre ou quando você trabalha com tipos de dados como cadeias de caracteres que precisam ser explicitamente convertidos para operações numéricas.

num = int("10")  # Converts string to integer
price = float("19.99")  # Converts string to float
text = str(123)  # Converts integer to string

Práticas recomendadas para trabalhar com tipos de dados em Python

Entender os tipos de dados do Python é apenas o primeiro passo - usá-los de forma eficaz é fundamental para que você escreva um código limpo, eficiente e de fácil manutenção. Aqui estão algumas práticas recomendadas que você deve ter em mente ao trabalhar com tipos de dados.

Use tipos específicos para tarefas específicas

Escolha tipos que estejam alinhados com sua tarefa. Por exemplo, use set quando você precisar manter elementos exclusivos, list para coleções de dados ordenados e tuple para sequências imutáveis .

Ao fazer escolhas deliberadas sobre os tipos de dados, você garante que seu código seja eficiente e mais fácil de ler e manter.

Validar tipos de entrada

Garantir que os dados de entrada sejam do tipo esperado pode evitar erros de tempo de execução e aumentar a confiabilidade do código. 

A função isinstance() do Python é uma maneira direta de validar tipos. Essa prática é particularmente importante em aplicativos em que as entradas são recebidas dinamicamente, como em formulários de usuário ou APIs.

if not isinstance(age, int):
    raise ValueError("Age must be an integer")

Usar bibliotecas para tipos complexos

As bibliotecas Python, como NumPy e pandas, são indispensáveis para a manipulação avançada de dados e a computação.

Como vimos, o NumPy oferece matrizes multidimensionais rápidas para operações numéricas, enquanto o pandas se destaca no manuseio e na transformação eficiente de dados estruturados. O uso dessas bibliotecas pode reduzir significativamente a complexidade do seu código e melhorar seu desempenho.

Conclusão

Entender os tipos de dados do Python é a primeira etapa para uma programação e manipulação de dados eficientes. Os tipos de dados formam a base da versatilidade do Python, permitindo que você manipule vários tipos de dados com precisão e facilidade.

Ao aprender esses fundamentos dos tipos integrados do Python e explorar bibliotecas avançadas como NumPy e pandas, você estará no caminho certo para se tornar um usuário profissional de Python e resolver problemas do mundo real em ciência de dados, análise de dados, análise financeira, inteligência artificial e muito mais!

Se você deseja aprofundar seus conhecimentos, confira o curso Introduction to Python for Developers, que aborda conceitos essenciais de Python de forma prática. Para obter um caminho de aprendizado estruturado que desenvolva suas habilidades em Python desde o início, considere o curso Python Data Fundamentals.

Obter uma certificação Python

Mostre que você é um cientista de dados em Python pronto para o trabalho

Perguntas frequentes

Qual tipo de dados Python devo usar para cálculos numéricos grandes?

Para cálculos numéricos grandes, use float para valores decimais e int para números inteiros. Se você precisar de uma precisão ainda maior, considere usar os módulos decimal ou fractions.

Como os tipos de dados do Python afetam o uso da memória e o desempenho?

Diferentes tipos de dados têm diferentes pegadas de memória e implicações de desempenho. Por exemplo, as listas exigem mais memória do que as tuplas devido à sua natureza dinâmica, enquanto os conjuntos oferecem pesquisas mais rápidas do que as listas para grandes conjuntos de dados. Usar o tipo certo para a tarefa pode otimizar o desempenho.

Como o Python lida com números inteiros grandes em comparação com outras linguagens?

Diferentemente de muitas linguagens com tipos de inteiros de tamanho fixo, o Python suporta automaticamente inteiros de precisão arbitrária (int), o que significa que os números podem aumentar de tamanho sem transbordar. No entanto, isso pode levar a uma sobrecarga de desempenho em comparação com os tipos inteiros de largura fixa em linguagens como C ou Java.

Qual é a melhor maneira de armazenar dados estruturados em Python?

Para dados estruturados simples, um dicionário (dict) costuma ser uma boa opção. Para dados tabulares mais complexos, recomenda-se o uso de bibliotecas externas como pandas.DataFrame, pois elas oferecem recursos avançados de manipulação de dados.

Por que devo preferir isinstance() a type() para verificação de tipo?

isinstance(obj, type) é compatível com herança, o que significa que ele identifica corretamente as instâncias de subclasses, enquanto o type(obj) == type só corresponde a tipos exatos. Isso torna o isinstance() mais flexível e robusto na programação orientada a objetos.

Quais são as vantagens e desvantagens de usar defaultdict ou dict em Python?

defaultdict (do módulo collections ) inicializa automaticamente as chaves ausentes com um valor padrão, evitando o KeyError. É útil quando você trabalha com dados agrupados, mas pode introduzir um comportamento não intencional se os padrões não forem tratados com cuidado.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Cientista de dados, fundador e criador do PyCaret

Temas

Aprenda mais sobre Python com estes cursos!

curso

Introduction to Python

4 hr
6M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

tutorial

Tipos de gráficos de dados e como criá-los em Python

Explore vários tipos de gráficos de dados, desde os mais comuns até os avançados e não convencionais, o que eles mostram, quando usá-los, quando evitá-los e como criá-los e personalizá-los em Python.
Elena Kosourova's photo

Elena Kosourova

21 min

tutorial

Operadores em Python

Este tutorial aborda os diferentes tipos de operadores em Python, sobrecarga de operadores, precedência e associatividade.
Théo Vanderheyden's photo

Théo Vanderheyden

9 min

tutorial

Tutorial de funções Python

Um tutorial sobre funções em Python que aborda como escrever funções, como chamá-las e muito mais!
Karlijn Willems's photo

Karlijn Willems

14 min

tutorial

Tutorial de Python

Em Python, tudo é objeto. Números, cadeias de caracteres (strings), DataFrames, e até mesmo funções são objetos. Especificamente, qualquer coisa que você usa no Python tem uma classe, um modelo associado por trás.
DataCamp Team's photo

DataCamp Team

3 min

Ver maisVer mais