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
| Tipo | Literal típico | Principais características | Quando usar | Métodos/ops úteis |
|---|---|---|---|---|
int | 42, 0xFF | Números inteiros que podem ser tão grandes quanto sua memória permitir; suporta literais binários 0b, octais 0o, hexadecimais 0x | Contagem, indexação, armazenamento de quantidades inteiras | bit_length(), to_bytes() |
float | 3.14, 1.2e3 | Números com ponto decimal; podem ter pequenos erros de arredondamento em cálculos | Medições, médias, cálculos científicos | .is_integer(), .hex(), módulo math |
complex | 2+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 sinais | Todas 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ário | Melhor tipo | Racionalidade |
|---|---|---|
| Armazenar a idade do usuário | int | Números inteiros, sem necessidade de decimais |
| Preço do produto | float | Precisa de casas decimais |
| Status de login do usuário | bool | Valor simples de verdadeiro/falso |
| Nome do meio do usuário (pode não existir) | str or None | Pode estar ausente |
| Itens do carrinho de compras | list | Ordenado, pode adicionar/remover itens |
| Dados do perfil do usuário | dict | Pares chave-valor (nome, e-mail, etc.) |
| Coordenadas GPS | tuple | Par fixo que não mudará |
| Categorias exclusivas de produtos | set | Sem duplicatas, pesquisa rápida |
Folha de dicas para mutabilidade e hashability
| Tipo | Mutável? | Hashable? | Pode ser chave de dict? |
|---|---|---|---|
int, float, complex | Não | Sim | ✔ |
str | Não | Sim | ✔ |
bool | Não | Sim | ✔ |
None | Não | Sim | ✔ |
tuple (com itens imutáveis) | Não | Sim | ✔ |
list | Sim | Não | ✘ |
dict | Sim | Não | ✘ |
set | Sim | Não | ✘ |
Principais conclusões para iniciantes
Comece simples: Use
intpara números inteiros,floatpara decimais,strpara texto,boolpara verdadeiro/falso eNonepara “nenhum valor”.Coleções facilitadas: Use
listquando precisar mudar as coisas,tuplequando não precisar,dictpara pares chave-valor esetpara itens exclusivos.Em caso de dúvida:
listedictcobrem a maioria das necessidades de coleção para iniciantes.Pratique com exemplos simples antes de passar para casos de uso complexos.
Lembre-se: Python é tolerante - você sempre pode converter entre tipos compatíveis quando necessário.