Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] [Projeto] Faça como eu fiz: textos, loops e APIs

lista_alunos = [1,2,3,4,5,6,7,8,9,10]

for i in lista_alunos:
  if i % 2 == 0:
    print(f'O número {i} é par')
  else:
    print(f'O número {i} é ímpar')

dict_alunos = {'aluno1': 7.0 , 'aluno2': 8.0, 'aluno3': 9.0}

for key,value in dict_alunos.items():
  print(f'key: {key}, value: {value}')

lista_alunos = ["aluno1", "aluno2", 'aluno3', 'aluno4']
lista_de_notas = [7.0,8.0,9.0, 10.0]

for aluno, nota in zip(lista_alunos, lista_de_notas):
  print(f'O aluno {aluno} tirou a nota {nota}')

dict_alunos = {'aluno1': 7.0 , 'aluno2': 8.0, 'aluno3': 9.0}

for key,value in enumerate(dict_alunos):
  print(f'key: {key}, value: {value}')

i = 0

while  i < len(lista_alunos) -1:
  print({lista_alunos[i]})
  i += 1

for i in range(1,11):
  if i % 2 == 0:
    print(f'O número {i} é par')
  else:
    print(f'O número {i} é ímpar')

for i in range(1,11, 2):
  print(i)

def limpa_texto(texto):
  texto = texto.strip().upper()
  print(texto)

limpa_texto("     BilL     GAtes  ")

def limpa_texto(texto):
  texto = texto.strip().upper().replace(",", " ").split()
  texto = ' '.join(texto)
  print(texto)

limpa_texto("     BilL  ,   GAtes  ")

def limpa_texto(texto):
  texto = texto.strip().upper().replace(",", " ").split()
  return ' '.join(texto)

print(limpa_texto("     BilL  ,   GAtes  "))

texto1 = "  joão SILVA de SOUZA santos  "
texto2 = "MaRia aPArECIdA dos SANtos LIMA"


print(limpa_texto(texto1))
print(limpa_texto(texto2))

def limpa_texto_title(texto):
  texto = texto.strip().upper().replace(",", " ").title().split()
  return ' '.join(texto)

print(limpa_texto_title(texto1))
print(limpa_texto_title(texto2))

import random

def aloca_motoristas_em_onibus(nome_do_motorista, lista_onibus):
  onibus_motorista = random.choice(lista_onibus)
  dict_bus_motora = {
      "nome": limpa_texto_title(nome_do_motorista),
      "onibus": onibus_motorista
  }
  return dict_bus_motora

lista_onibus = ['bus1','bus2','bus3','bus4']
print(aloca_motoristas_em_onibus('JoÃo    busao da SILva', lista_onibus))

def montar_dicionario(lista, lista_de_notas):
  dict_alunos = {}
  for aluno, nota in zip(lista_alunos, lista_de_notas):
    dict_alunos[limpa_texto_title(aluno)] = nota
  return dict_alunos

lista_alunos = ["ALunO1 dA SIlva", "aluno2 de MELO", 'aLUno3 MALuco', 'aluno4 sei Lá']
lista_de_notas = [7.0,8.0,9.0, 10.0]
print(montar_dicionario(lista_alunos, lista_de_notas))

def percorre_lista_de_emails(lista_emails):
  for email in lista_emails:
    print(email)


lista_emails = [
    "contato@tecnologia-inova.com",
    "joao.silva@servico-nuvem.br",
    "suporte.cliente@loja-virtual.net",
    "maria.oliveira88@email-pessoal.com",
    "rh@empresa-consultoria.com.br",
    "financeiro@gestao-facil.org",
    "marketing@criatividade-digital.io",
    "pedidos@comercio-online.com",
    "contato.vendas@tech-solutions.net",
]

percorre_lista_de_emails(lista_emails)

import os
from google.colab import userdata
from google import genai

def configura_genai():
  os.environ["GOOGLE_API_KEY"] = userdata.get('GEMINI_API_KEY_TEMP')
  client = genai.Client()
  return client

def resume_emails(lista_emails: list) -> list:
  '''
    retorna lista de email resumidos
  '''
  client = configura_genai()

  resumo_emails = []
  for i, corpo in enumerate(lista_emails):
      resposta = client.models.generate_content(
                model = 'gemini-2.5-flash',
                contents = "Você é uma auxiliar prestativo, Resuma este email, retornado de forma consisa em no máximo 10 palavras o que a pessoa quer: " + corpo.strip()
      )
      resposta = f"Email ({i+1}) Resumo:  {resposta}"
      resumo_emails.append(resposta)

  return resumo_emails

email_bodies2 = [
    "Prezada equipe de desenvolvimento, venho por meio deste informar que detectamos uma instabilidade recorrente no nosso módulo de pagamentos durante os picos de acesso entre 14h e 16h. O erro parece estar relacionado ao tempo de resposta do gateway externo. Precisamos que analisem os logs de erro dos últimos três dias e preparem um relatório técnico detalhando as possíveis causas, além de uma sugestão de implementação de uma fila de mensagens para processamento assíncrono. Por favor, reportem o progresso na reunião de acompanhamento de quinta-feira.",
    "Olá, Mariana. Em continuidade à nossa reunião sobre o planejamento estratégico do próximo trimestre, gostaria de formalizar as diretrizes que definimos. O foco principal será a expansão da nossa base de clientes no setor de logística, exigindo uma otimização das campanhas de marketing de performance. Solicito que você prepare uma planilha comparativa com o custo de aquisição de clientes (CAC) atual versus o projetado com a nova estratégia, considerando um investimento adicional de 15% em mídia paga nos canais digitais."
]

resume_emails(email_bodies2)

2 respostas
solução!

Oii Marcelo, tudo bem?

Obrigada por compartilhar seu desenvolvimento no fórum! Você cobriu bastante coisa nessa atividade: iteração com for, while, zip, enumerate, range, manipulação de strings com funções reutilizáveis e até integração com a API do Gemini para resumir e-mails. Ficou bem estruturado.

Uma observação sobre o trecho com enumerate no dicionário:

for key, value in enumerate(dict_alunos):
    print(f'key: {key}, value: {value}')

Aqui o enumerate itera sobre as chaves do dicionário e retorna um índice numérico como key. Se o objetivo era iterar pelos pares chave/valor, o dict_alunos.items() (como você usou antes) seria o mais adequado. Vale ter isso em mente para não misturar os dois casos.

Fora isso, o código está funcionando bem e a função limpa_texto_title ficou uma boa evolução em relação às versões anteriores. Parabéns por ir refinando progressivamente.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade

Valeu Victor pelo feedback