Aula 16: Tuplas

Coleções imutáveis para dados fixos.

O Que Você Vai Aprender

Nesta aula de 2 horas, você será introduzido às tuplas, outra estrutura de dados fundamental em Python, mas com uma característica-chave que as diferencia das listas: a imutabilidade. Entenderá como criar, acessar e fatiar tuplas, e as situações ideais para utilizá-las, aproveitando suas vantagens únicas.

🔒 Compreender Tuplas e Imutabilidade

Entender o que são tuplas e sua principal característica: a imutabilidade.

🔍 Criar, Acessar e Fatiar Tuplas

Aprender a sintaxe para criar tuplas e como acessar seus elementos e fatias.

💡 Quando Usar Tuplas

Identificar as situações em que o uso de tuplas é mais adequado do que o de listas.

Conceito e Criação de Tuplas

Tuplas, assim como listas, são coleções ordenadas de itens. A diferença crucial é que tuplas são imutáveis: uma vez criadas, seus elementos não podem ser alterados. Elas são ideais para representar coleções de dados que não devem mudar.

Sintaxe

Use parênteses `()` para criar tuplas. Itens são separados por vírgulas.

minha_tupla = (1, 2, 3)
outra_tupla = "a", "b", "c" # Parênteses são opcionais na maioria dos casos
vazia = ()

Caso especial: Tupla com um único elemento

Para criar uma tupla com apenas um item, é obrigatório adicionar uma vírgula após o elemento. Sem ela, Python não a interpreta como tupla.

tupla_unica = (5,) # Isso é uma tupla
nao_e_tupla = (5)  # Isso é apenas o número 5

Criador de Tuplas

Crie sua própria tupla digitando os itens separados por vírgulas. Veja como o Python a interpreta!

Imutabilidade na Prática: O Que Não Fazer

A imutabilidade é a característica mais importante das tuplas. Ela significa que, após a criação, você não pode adicionar, remover ou modificar os elementos de uma tupla. Tentar fazer isso resultará em um `TypeError` (Erro de Tipo).

🚫 Tentativa de Alteração (resultará em erro!):

coordenadas = (10, 20)
# coordenadas[0] = 15  # Isso vai gerar um TypeError!

Testador de Imutabilidade

Tente modificar um elemento da tupla `(10, 20, 30)` por índice. Você verá um erro!

Operações Permitidas com Tuplas

Embora tuplas sejam imutáveis, isso não significa que você não possa interagir com elas. Muitas operações de leitura e criação de novas tuplas são perfeitamente válidas, assim como em strings e listas.

Acesso por Índice e Fatiamento (Slicing)

Você pode acessar elementos individuais e fatias de tuplas da mesma forma que em listas e strings.

coordenadas = (10, 20, 30)
print(coordenadas[0])  # Saída: 10
print(coordenadas[0:2]) # Saída: (10, 20)

Concatenação (`+`) e Repetição (`*`)

Essas operações criam novas tuplas, não modificam as originais.

tupla1 = (1, 2)
tupla2 = (3, 4)
nova_tupla = tupla1 + tupla2
# nova_tupla é (1, 2, 3, 4)

repetida = (0,) * 3
# repetida é (0, 0, 0)

Quando Usar Tuplas?

A escolha entre tuplas e listas depende do seu caso de uso. Tuplas são ideais quando a coleção de dados deve ser tratada como uma unidade fixa e imutável. Aqui estão algumas situações:

✅ Integridade dos Dados

Para dados que não devem ser modificados ao longo da execução do programa, como coordenadas geográficas `(latitude, longitude)`, cores RGB `(r, g, b)`, ou registros fixos `(nome, idade, cidade)`.

🔑 Chaves de Dicionário

Como são imutáveis, tuplas podem ser usadas como chaves em dicionários. Listas (por serem mutáveis) não podem ser chaves de dicionário.

🚀 Desempenho

Em certas operações, tuplas podem ser ligeiramente mais rápidas e consumir um pouco menos de memória do que as listas devido à sua natureza fixa.

📤 Retorno de Funções Múltiplas

Funções em Python que retornam múltiplos valores, na verdade, retornam uma tupla.

Desempacotamento de Tuplas (Unpacking)

O desempacotamento de tuplas é um recurso conveniente que permite atribuir os valores de uma tupla a múltiplas variáveis de uma só vez. Isso torna o código mais limpo e legível, especialmente ao lidar com funções que retornam tuplas.

Exemplo

ponto = (150, 75)
x, y = ponto
print(f"A coordenada x é {x} e a y é {y}")
# Saída: A coordenada x é 150 e a y é 75

O número de variáveis no lado esquerdo da atribuição deve ser igual ao número de elementos na tupla.

Simulador de Desempacotamento de Tuplas

Digite uma tupla (ex: `10,'Olá',True`) e veja seus elementos desempacotados em variáveis.

Desafios para Continuar

Agora que você aprendeu sobre tuplas, é hora de praticar! Resolva estes problemas no seu ambiente de desenvolvimento Python para solidificar seu aprendizado.

  • Tupla dos Dias da Semana e Imutabilidade

    Crie uma tupla para representar os dias da semana (ex: `("Segunda", "Terça", ...) `). Em seguida, tente modificar o primeiro dia (ex: `dias_semana[0] = "Domingo"`) e observe o `TypeError` que ocorre, confirmando a imutabilidade.

  • Mês Correspondente

    Crie uma tupla com os nomes dos 12 meses do ano. Faça um programa que peça ao usuário um número de 1 a 12 e imprima o mês correspondente (lembre-se que índices começam em 0!).