Posted on Jul 20, 2025· Updated on Jul 20, 2025

Tipos de Dados Python Explicados - Um Guia Visual para Iniciantes

#python #beginner #data types
Image for Tipos de Dados Python Explicados - Um Guia Visual para Iniciantes

Python vem com nove tipos de dados principais que cobrem quase tudo o que você precisará. Escolher o tipo certo torna seu código mais claro, mais rápido e mais seguro. Este guia mostra como cada tipo funciona, quando usá-lo e o que observar. Para uma visão geral rápida, confira também nosso guia de noções básicas.

Diagrama das categorias de tipos de dados internos do Python e da mutabilidade.

1. Números – int, float, complex

Python tem três tipos para trabalhar com números, cada um projetado para diferentes situações.

Primeiros exemplos básicos

# Integers - números inteiros
age = 25
score = 100
negative = -10

# Floats - números com decimais
price = 19.99
temperature = 98.6
pi = 3.14159

# Complex - números com partes real e imaginária (matemática avançada)
z = 2 + 3j  # j representa a unidade imaginária em Python
TipoLiteral típicoPrincipais característicasQuando usarMétodos/ops úteis
int42, 0xFFNúmeros inteiros que podem ser tão grandes quanto sua memória permitir; suporta literais binários 0b, octais 0o, hexadecimais 0xContagem, indexação, armazenamento de quantidades inteirasbit_length(), to_bytes()
float3.14, 1.2e3Números com ponto decimal; podem ter pequenos erros de arredondamento em cálculosMedições, médias, cálculos científicos.is_integer(), .hex(), módulo math
complex2+3j, complex(a,b)Números com partes real e imaginária (usados em matemática avançada); .real, .imag, .conjugate()Matemática avançada, engenharia, processamento de sinaisTodas as operações aritméticas, abs() retorna a magnitude

Mais exemplos

# Trabalhando com inteiros
items = 5
total_items = items * 3  # 15

# Trabalhando com floats
radius = 2.5
area = 3.14159 * radius * radius  # 19.634...

# Cuidado com a precisão do float
result = 0.1 + 0.2  # 0.30000000000000004 (não exatamente 0.3!)

# Números complexos (você provavelmente não precisará deles como iniciante)
z = complex(2, 3)     # O mesmo que 2+3j
magnitude = abs(z)    # 3.605...

2. Strings – str

Strings armazenam texto e são um dos tipos mais importantes que você usará. Para operações de string mais detalhadas, consulte nosso guia de manipulação de strings.

Exemplos básicos

# Criando strings
name = "Alice"
message = 'Hello world'
long_text = """Esta é uma
string de múltiplas linhas"""

# Operações básicas
greeting = "Hello, " + name  # "Hello, Alice"
repeated = "Ha" * 3          # "HaHaHa"
length = len(message)        # 11

Características principais:

  • Imutáveis: uma vez criadas, você não pode alterá-las (mas pode criar novas)
  • Use aspas simples ' ou duplas "
  • Aspas triplas """ para texto de múltiplas linhas
  • Suporta Unicode (emojis, caracteres internacionais)

Operações comuns de string

text = "  Python Programming  "

# Métodos úteis
clean_text = text.strip()           # "Python Programming"
words = clean_text.split()          # ["Python", "Programming"]
joined = "-".join(words)            # "Python-Programming"
upper_text = clean_text.upper()     # "PYTHON PROGRAMMING"
replaced = clean_text.replace("Python", "Java")  # "Java Programming"

# Verificando conteúdo
starts_with_p = clean_text.startswith("Python")  # True
has_gram = "gram" in clean_text                   # True

# Formatação moderna (recomendada)
age = 25
formatted = f"I am {age} years old"  # "I am 25 years old"

3. Booleanos – bool

Booleanos representam valores Verdadeiro ou Falso - essenciais para tomar decisões em seu código. Saiba mais sobre a função bool().

Exemplos básicos

# Valores booleanos simples
is_student = True
is_graduated = False

# Operações booleanas
has_degree = is_student or is_graduated  # True
ready_to_work = is_graduated and not is_student  # False

Veracidade (Truthiness): Python trata muitos valores como Verdadeiro ou Falso em condições:

# Estes são "truthy" (agem como True)
if "hello":     # strings não vazias
if [1, 2, 3]:   # listas não vazias
if 42:          # números diferentes de zero

# Estes são "falsy" (agem como False)
if "":          # string vazia
if []:          # lista vazia
if 0:           # zero
if None:        # valor None

Exemplos práticos

items = []
if items:
    print("We have items!")
else:
    print("No items found")  # Este será impresso

score = 85
passed = score >= 60  # True

4. Tipo None – NoneType

None representa “nada” ou “nenhum valor” - você o verá em todos os lugares em Python.

Exemplos básicos

# Variáveis que ainda não têm um valor
result = None
user_input = None

# Funções retornam None por padrão
def greet(name):
    print(f"Hello, {name}")

return_value = greet("Alice")  # return_value é None

# Verificando se é None
if result is None:
    print("No result yet")

# Padrão comum: valores opcionais
def find_user(username):
    # ... lógica de busca ...
    if user_found:
        return user_data
    else:
        return None  # Nada encontrado

Importante: Sempre use is e is not ao comparar com None, não ==:

# Correto
if value is None:
    # faça algo

# Incorreto (mas funciona)
if value == None:
    # faça algo

5. Listas – list

Listas armazenam vários itens em ordem e permitem que você os altere após a criação. Para operações de lista abrangentes, consulte nosso guia de listas e tuplas.

Exemplos básicos

# Criando listas
fruits = ["apple", "banana", "orange"]
numbers = [1, 2, 3, 4, 5]
mixed = ["hello", 42, True, None]  # Listas podem conter tipos diferentes
empty = []

# Acessando itens (começa no índice 0)
first_fruit = fruits[0]      # "apple"
last_fruit = fruits[-1]      # "orange"

Operações comuns

shopping_list = ["milk", "bread"]

# Adicionando itens
shopping_list.append("eggs")         # ["milk", "bread", "eggs"]
shopping_list.insert(0, "butter")    # ["butter", "milk", "bread", "eggs"]
shopping_list.extend(["cheese", "ham"])  # Adicionar múltiplos itens

# Removendo itens
shopping_list.remove("milk")         # Remove a primeira ocorrência
last_item = shopping_list.pop()      # Remove e retorna o último item
first_item = shopping_list.pop(0)    # Remove e retorna o primeiro item

# Operações úteis
length = len(shopping_list)
has_bread = "bread" in shopping_list

Quando usar listas

  • Quando você precisa de dados ordenados que podem mudar
  • Construindo coleções item por item
  • Quando você precisa acessar itens por posição
# Bons casos de uso
grades = [85, 92, 78, 96]
todo_items = ["wash dishes", "walk dog", "study Python"]

# Processando listas
total = sum(grades)
average = total / len(grades)

for item in todo_items:
    print(f"Task: {item}")

6. Dicionários – dict

Dicionários armazenam dados como pares de chave-valor, como um dicionário real onde você procura palavras (chaves) para encontrar definições (valores). Para operações de dicionário abrangentes, consulte nosso guia de dicionários.

Exemplos básicos

# Criando dicionários
person = {"name": "Alice", "age": 30, "city": "New York"}
grades = {"math": 85, "english": 92, "science": 78}
empty = {}

# Acessando valores
name = person["name"]        # "Alice"
age = person.get("age")      # 30 (maneira mais segura)
height = person.get("height", "unknown")  # "unknown" se a chave não existir

Operações comuns

student = {"name": "Bob", "grade": 85}

# Adicionando/atualizando valores
student["age"] = 20           # Adiciona novo par chave-valor
student["grade"] = 90         # Atualiza valor existente

# Métodos úteis
keys = student.keys()         # dict_keys(['name', 'grade', 'age'])
values = student.values()     # dict_values(['Bob', 90, 20])
items = student.items()       # dict_items([('name', 'Bob'), ...])

# Verificando chaves
if "name" in student:
    print(f"Student name: {student['name']}")

# Removendo itens
age = student.pop("age")      # Remove e retorna o valor
student.pop("height", None)   # Remoção segura (sem erro se a chave estiver faltando)

Quando usar dicionários

  • Quando você precisa procurar valores por um identificador exclusivo
  • Armazenamento de dados estruturados (como registros)
  • Contagem de coisas
  • Cache/memoização
# Bons casos de uso
inventory = {"apples": 50, "bananas": 30, "oranges": 25}
user_profile = {
    "username": "alice123",
    "email": "alice@example.com",
    "is_premium": True
}

# Exemplo de contagem
text = "hello world"
char_count = {}
for char in text:
    char_count[char] = char_count.get(char, 0) + 1
# Resultado: {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}

7. Tuplas – tuple

Tuplas são como listas, mas não podem ser alteradas após a criação. Pense nelas como listas “travadas”. Saiba mais sobre tuplas em nosso guia de listas e tuplas.

Exemplos básicos

# Criando tuplas
coordinates = (10, 20)
rgb_color = (255, 0, 128)
single_item = (42,)    # Note a vírgula para tuplas de item único
empty = ()

# Parênteses são frequentemente opcionais
point = 5, 10          # O mesmo que (5, 10)
name_age = "Alice", 25 # O mesmo que ("Alice", 25)

# Acessando itens (igual a listas)
x = coordinates[0]     # 10
y = coordinates[1]     # 20

Desempacotamento de tuplas

# Desempacotamento é muito útil
point = (100, 200)
x, y = point          # x=100, y=200

# Trocando valores
a = 5
b = 10
a, b = b, a           # Agora a=10, b=5

# Função retornando múltiplos valores
def get_name_age():
    return "Bob", 25

name, age = get_name_age()

Quando usar tuplas

  • Quando você tem uma coleção fixa que não mudará
  • Retornar múltiplos valores de funções
  • Como chaves de dicionário (já que são imutáveis)
  • Representar coordenadas, valores RGB, etc.
# Bons casos de uso
WINDOW_SIZE = (800, 600)        # Constantes
DEFAULT_COLOR = (255, 255, 255) # Branco RGB

# Dicionário com chaves de tupla
locations = {
    (0, 0): "origin",
    (1, 1): "northeast",
    (-1, -1): "southwest"
}

8. Conjuntos – set

Conjuntos armazenam itens exclusivos sem duplicatas e sem ordem específica. Ótimo para teste de pertinência e remoção de duplicatas. Para operações de conjunto abrangentes, consulte nosso guia de conjuntos.

Exemplos básicos

# Criando conjuntos
colors = {"red", "green", "blue"}
numbers = {1, 2, 3, 4, 5}
empty = set()  # Nota: {} cria um dicionário vazio, não um conjunto!

# A partir de listas (remove duplicatas)
mixed_list = [1, 2, 2, 3, 3, 3]
unique_numbers = set(mixed_list)  # {1, 2, 3}

Operações comuns

tags = {"python", "programming", "beginner"}

# Adicionando itens
tags.add("tutorial")
tags.update(["coding", "learning"])  # Adicionar múltiplos itens

# Removendo itens
tags.remove("beginner")     # Erro se o item não existir
tags.discard("advanced")    # Sem erro se o item não existir

# Teste de pertinência (muito rápido!)
if "python" in tags:
    print("This is about Python!")

# Operações de conjunto
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union = set1 | set2         # {1, 2, 3, 4, 5}
intersection = set1 & set2   # {3}
difference = set1 - set2     # {1, 2}

Quando usar conjuntos

  • Removendo duplicatas de uma coleção
  • Teste de pertinência rápido
  • Operações matemáticas de conjunto
  • Rastreamento de visitantes exclusivos, IDs, etc.
# Bons casos de uso
unique_visitors = set()
unique_visitors.add("user123")
unique_visitors.add("user456")
unique_visitors.add("user123")  # Não adicionará duplicata
print(len(unique_visitors))     # 2

# Remover duplicatas de uma lista
items = ["apple", "banana", "apple", "orange", "banana"]
unique_items = list(set(items))  # ['apple', 'banana', 'orange']

Escolhendo o tipo certo – dicas do mundo real

CenárioMelhor tipoRacionalidade
Armazenar a idade do usuáriointNúmeros inteiros, sem necessidade de decimais
Preço do produtofloatPrecisa de casas decimais
Status de login do usuárioboolValor simples de verdadeiro/falso
Nome do meio do usuário (pode não existir)str or NonePode estar ausente
Itens do carrinho de compraslistOrdenado, pode adicionar/remover itens
Dados do perfil do usuáriodictPares chave-valor (nome, e-mail, etc.)
Coordenadas GPStuplePar fixo que não mudará
Categorias exclusivas de produtossetSem duplicatas, pesquisa rápida

Folha de dicas para mutabilidade e hashability

TipoMutável?Hashable?Pode ser chave de dict?
int, float, complexNãoSim
strNãoSim
boolNãoSim
NoneNãoSim
tuple (com itens imutáveis)NãoSim
listSimNão
dictSimNão
setSimNão

Principais conclusões para iniciantes

  1. Comece simples: Use int para números inteiros, float para decimais, str para texto, bool para verdadeiro/falso e None para “nenhum valor”.

  2. Coleções facilitadas: Use list quando precisar mudar as coisas, tuple quando não precisar, dict para pares chave-valor e set para itens exclusivos.

  3. Em caso de dúvida: list e dict cobrem a maioria das necessidades de coleção para iniciantes.

  4. Pratique com exemplos simples antes de passar para casos de uso complexos.

  5. Lembre-se: Python é tolerante - você sempre pode converter entre tipos compatíveis quando necessário.