Organizando Informações em Listas

Aula 05 - Listas e Arrays

📊 Listas ⏱️ 90 minutos 🎯 Arrays

🎯 Objetivos da Aula

📋

Listas

Criar e manipular listas

Métodos

append(), remove(), pop()

🔍

Indexação

Acessar elementos por posição

🛒

Projeto

Lista de compras inteligente

📚 Conteúdo da Aula

📚 A Estante Organizadora

O Que São Listas?

Imagine uma estante com várias prateleiras numeradas. Cada prateleira pode guardar um item diferente!

📖 Analogia da Estante:
0 📕 "Python para Crianças"
1 📘 "Algoritmos Divertidos"
2 📗 "Loops Mágicos"
3 📙 "Listas Fantásticas"
📦 Variável Simples
nome = "João"

Guarda apenas UM valor

VS
📋 Lista
nomes = ["João", "Maria", "Pedro"]

Guarda VÁRIOS valores

💡 Conceito-chave: Listas são como estantes organizadas onde cada "prateleira" tem um número (índice) e pode guardar um item!

🔍 Indexação - Encontrando Itens na Lista

Como Acessar Elementos por Posição

Em Python, contamos a partir do 0! É como se a primeira prateleira fosse a "prateleira zero".

🗂️ Visualização de Índices:
Índice: 0 1 2 3
Valor: "🍎" "🍌" "🍓" "🍇"
🧪 Acessando Elementos:
# Criando uma lista de frutas
frutas = ["🍎", "🍌", "🍓", "🍇"]

# Acessando por índice
print(frutas[0])  # 🍎 (primeira fruta)
print(frutas[1])  # 🍌 (segunda fruta)
print(frutas[-1]) # 🍇 (última fruta)

# Descobrindo o tamanho da lista
print(f"Temos {len(frutas)} frutas!")
📏 Regras dos Índices:
  • 0 = Primeiro elemento
  • 1 = Segundo elemento
  • -1 = Último elemento
  • -2 = Penúltimo elemento

📋 Criando e Manipulando Listas

As Diferentes Formas de Criar Listas

Podemos criar listas vazias ou já com itens. É como montar nossa estante!

📝 Lista Vazia
minha_lista = []

Como uma estante vazia, pronta para receber livros

📚 Lista com Itens
cores = ["azul", "verde", "vermelho"]

Como uma estante já organizada com livros

🔢 Lista de Números
numeros = [1, 2, 3, 4, 5]

Podemos misturar diferentes tipos!

🎨 Exemplo Criativo:
# Criando diferentes tipos de listas
animais = ["🐶", "🐱", "🐰", "🐸"]
numeros_favoritos = [7, 13, 21, 42]
mista = ["João", 15, "Python", True]

print("Animais:", animais)
print("Números:", numeros_favoritos)
print("Lista mista:", mista)

➕ Métodos de Lista - Modificando Nossa Estante

Adicionando, Removendo e Organizando

As listas têm poderes especiais! Podemos adicionar e remover itens facilmente.

append()

Adiciona item no final

lista.append("novo")
🗑️
remove()

Remove item específico

lista.remove("item")
�🎯
pop()

Remove último item

lista.pop()
📍
insert()

Insere em posição específica

lista.insert(0, "primeiro")
🔍
index()

Encontra posição do item

lista.index("item")
📊
count()

Conta quantas vezes aparece

lista.count("item")
🧪 Testando os Métodos:
# Começando com uma lista vazia
carrinho = []

# Adicionando itens
carrinho.append("🍎 Maçã")
carrinho.append("🥛 Leite")
carrinho.append("🍞 Pão")
print("Carrinho:", carrinho)

# Inserindo no início
carrinho.insert(0, "🛒 Carrinho de")
print("Depois do insert:", carrinho)

# Removendo um item
carrinho.remove("🥛 Leite")
print("Depois do remove:", carrinho)

# Removendo o último
ultimo_item = carrinho.pop()
print(f"Removi: {ultimo_item}")
print("Carrinho final:", carrinho)

🔄 Listas + Loops = Dupla Perfeita!

Percorrendo Todos os Itens

Combinar listas com loops é como ter um assistente que verifica cada prateleira da estante!

🔄 Loop Simples
for item in lista:
    print(item)

Percorre cada item da lista

🔢 Loop com Índice
for i in range(len(lista)):
    print(f"{i}: {lista[i]}")

Mostra posição e valor

✨ Loop com enumerate()
for i, item in enumerate(lista):
    print(f"{i}: {item}")

Mais elegante e pythônico!

🎭 Exemplo: Lista de Tarefas
# Lista de tarefas do dia
tarefas = [
    "Estudar Python",
    "Fazer exercícios",
    "Brincar no parque",
    "Ler um livro"
]

print("📋 MINHAS TAREFAS DO DIA:")
print("=" * 30)

for i, tarefa in enumerate(tarefas, 1):
    print(f"{i}. ✅ {tarefa}")

print("=" * 30)
print(f"Total: {len(tarefas)} tarefas!")

🛒 Projeto - Lista de Compras Inteligente

🚀 Hora de Praticar!

Vamos criar um programa completo que gerencia uma lista de compras usando tudo que aprendemos!

🎯 Funcionalidades do Projeto:
Adicionar itens
👁️ Ver lista completa
🗑️ Remover itens
📊 Contar total de itens
🔍 Buscar item específico
🧹 Limpar lista
Código Completo:
# 🛒 LISTA DE COMPRAS INTELIGENTE 🛒
print("Bem-vindo ao seu assistente de compras!")
lista_compras = []

while True:
    print("\n" + "="*40)
    print("🛒 LISTA DE COMPRAS INTELIGENTE 🛒")
    print("="*40)
    print("1. ➕ Adicionar item")
    print("2. 👁️  Ver lista completa")
    print("3. 🗑️  Remover item")
    print("4. 🔍 Buscar item")
    print("5. 📊 Estatísticas")
    print("6. 🧹 Limpar lista")
    print("7. 🚪 Sair")
    print("="*40)
    
    opcao = input("Escolha uma opção (1-7): ")
    
    if opcao == "1":
        item = input("📝 Digite o item para adicionar: ")
        if item:
            lista_compras.append(item)
            print(f"✅ '{item}' adicionado à lista!")
        else:
            print("❌ Item inválido!")
    
    elif opcao == "2":
        if lista_compras:
            print("\n📋 SUA LISTA DE COMPRAS:")
            print("-" * 30)
            for i, item in enumerate(lista_compras, 1):
                print(f"{i:2d}. 🛍️ {item}")
            print("-" * 30)
        else:
            print("📋 Lista vazia! Adicione alguns itens.")
    
    elif opcao == "3":
        if lista_compras:
            print("\n📋 Lista atual:")
            for i, item in enumerate(lista_compras, 1):
                print(f"{i}. {item}")
            try:
                indice = int(input("Digite o número do item para remover: ")) - 1
                if 0 <= indice < len(lista_compras):
                    item_removido = lista_compras.pop(indice)
                    print(f"🗑️ '{item_removido}' removido!")
                else:
                    print("❌ Número inválido!")
            except ValueError:
                print("❌ Digite apenas números!")
        else:
            print("📋 Lista vazia! Nada para remover.")
    
    elif opcao == "4":
        if lista_compras:
            busca = input("🔍 Digite o item para buscar: ").lower()
            encontrados = []
            for i, item in enumerate(lista_compras):
                if busca in item.lower():
                    encontrados.append((i+1, item))
            
            if encontrados:
                print("🔍 Itens encontrados:")
                for pos, item in encontrados:
                    print(f"  {pos}. {item}")
            else:
                print("❌ Item não encontrado!")
        else:
            print("📋 Lista vazia!")
    
    elif opcao == "5":
        print(f"\n📊 ESTATÍSTICAS:")
        print(f"📦 Total de itens: {len(lista_compras)}")
        if lista_compras:
            print(f"📝 Primeiro item: {lista_compras[0]}")
            print(f"📝 Último item: {lista_compras[-1]}")
    
    elif opcao == "6":
        if lista_compras:
            confirm = input("🧹 Tem certeza que quer limpar a lista? (s/n): ")
            if confirm.lower() == 's':
                lista_compras.clear()
                print("🧹 Lista limpa!")
            else:
                print("❌ Operação cancelada!")
        else:
            print("📋 Lista já está vazia!")
    
    elif opcao == "7":
        print("👋 Obrigado por usar o Lista de Compras!")
        print("🛒 Boa sorte nas suas compras!")
        break
    
    else:
        print("❌ Opção inválida! Escolha de 1 a 7.")

print("🎉 Programa finalizado!")
🎨 Desafios de Melhoria:
  • 🏷️ Adicione preços aos itens e calcule o total
  • 📋 Crie categorias (frutas, limpeza, etc.)
  • ⭐ Sistema de prioridades (urgente, normal, baixa)
  • 💾 Salve a lista em um arquivo para não perder

🏠 Desafio para Casa

🎯 Desafio Principal: Análise de Números

Crie um programa que analisa uma lista de números e encontra informações interessantes!

📋 O que o programa deve fazer:
  • 🔢 Solicitar 5 números do usuário
  • 📊 Encontrar o maior número
  • 📉 Encontrar o menor número
  • ➕ Calcular a média (soma ÷ quantidade)
  • 🔢 Contar números pares e ímpares
🏗️ Estrutura Inicial:
print("=== ANALISADOR DE NÚMEROS ===")

# Criando lista vazia
numeros = []

# Coletando 5 números
for i in range(5):
    num = int(input(f"Digite o {i+1}º número: "))
    numeros.append(num)

print(f"\nNúmeros digitados: {numeros}")

# Encontrar maior e menor
maior = max(numeros)  # ou usar loops!
menor = min(numeros)  # ou usar loops!

print(f"🔝 Maior número: {maior}")
print(f"🔻 Menor número: {menor}")

# Agora é sua vez de completar!
# Calcule a média
# Conte pares e ímpares
💡 Dicas Importantes:
  • Use sum(lista) para somar todos os números
  • Use len(lista) para saber quantos números tem
  • Use numero % 2 == 0 para verificar se é par
  • Use loops para percorrer a lista e contar
🎯 Desafios Bônus:
📝 Agenda de Contatos:

Crie uma lista de nomes e permita adicionar, remover e buscar contatos

🎵 Playlist Musical:

Gerencie uma lista de músicas com opções de tocar, pausar e pular

🏆 Top 5 Jogos:

Mantenha uma lista dos seus 5 jogos favoritos em ordem de preferência

🎲 Gerador de Listas:

Crie listas automáticas: números pares de 1 a 20, tabuada do 7, etc.

🔮 Próxima Aula:

Na Aula 6, aprenderemos sobre funções! Vamos descobrir como criar nossos próprios comandos personalizados! 🎭✨