Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

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

alunos = {
'Ana': 8.5,
'Carlos': 7.0,
'Mariana': 9.2
}

for aluno, nota in alunos.items():
print(f'Aluno: {aluno} | Nota: {nota}')

Aluno: Ana | Nota: 8.5
Aluno: Carlos | Nota: 7.0
Aluno: Mariana | Nota: 9.2


alunos = ['Ana', 'Carlos', 'Mariana', 'João', 'Beatriz']

for aluno in alunos:
print(aluno)

Ana
Carlos
Mariana
João
Beatriz


alunos = ['Ana', 'Carlos', 'Mariana', 'João', 'Beatriz']

indice = 0

for aluno in alunos:
print(f'{indice} - {aluno}')
indice += 1

0 - Ana
1 - Carlos
2 - Mariana
3 - João
4 - Beatriz


notas_alunos = {
'Ana': 8.5,
'Carlos': 7.0,
'Mariana': 9.2,
'João': 6.8
}

for aluno, nota in notas_alunos.items():
print(f'Aluno: {aluno} | Nota: {nota}')

Aluno: Ana | Nota: 8.5
Aluno: Carlos | Nota: 7.0
Aluno: Mariana | Nota: 9.2
Aluno: João | Nota: 6.8


for numero in range(15):
print(numero)

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14


numero = input("Digite um número: ")
numero = int(numero)
if numero % 2 == 0:
print("O número é par.")
else:
print("O número é ímpar.")

Digite um número: 20
O número é par.


def processar_nome(nome):
nome = nome.strip() # Remove espaços extras
nome = nome.upper() # Converte para maiúsculas
nome = nome.replace("SILVA", "S.") # Substitui texto
return nome

nome = " Ana Silva "
print(processar_nome(nome))

ANA S.


def remover_espacos_extras(texto):
return ' '.join(texto.split())

frase = " Ana Silva estuda Python "
print(remover_espacos_extras(frase))

Ana Silva estuda Python


alunos = ['Ana', 'Carlos', 'Mariana', 'João']

lista_alunos = ', '.join(alunos)

print(f'Alunos da turma: {lista_alunos}')

Alunos da turma: Ana, Carlos, Mariana, João


def calcular_media(nota1, nota2):
media = (nota1 + nota2) / 2
return media

media_aluno = calcular_media(8.0, 9.0)

print(f"Média: {media_aluno}")

Média: 8.5


def corrigir_nome(nome):
nome = ' '.join(nome.split())
nome = nome.title()
return nome

alunos = [
" ana silva ",
"CARLOS souza",
" mariana SANTOS "
]

for aluno in alunos:
print(corrigir_nome(aluno))

Ana Silva
Carlos Souza
Mariana Santos


def corrigir_nome(nome):
return ' '.join(nome.split()).title()

nomes = [
" ana silva ",
"CARLOS souza",
" mariana SANTOS ",
"joÃO da siLVa"
]

nomes_padronizados = []

for nome in nomes:
nomes_padronizados.append(corrigir_nome(nome))

print(nomes_padronizados)

Ana Silva
Carlos Souza
Mariana Santos


import random

alunos = ['Ana', 'Carlos', 'Mariana', 'João', 'Beatriz']
grupos = ['Grupo A', 'Grupo B']

for aluno in alunos:
grupo = random.choice(grupos)
print(f'{aluno} foi alocado no {grupo}')

Ana foi alocado no Grupo A
Carlos foi alocado no Grupo A
Mariana foi alocado no Grupo B
João foi alocado no Grupo A
Beatriz foi alocado no Grupo A


def corrigir_nome(nome):
return ' '.join(nome.split()).title()

alunos = [
(" ana silva ", 8.5, "Aprovado"),
("CARLOS souza", 7.0, "Aprovado"),
(" mariana SANTOS ", 9.2, "Aprovado")
]

dic_alunos = {}

for nome, nota, situacao in alunos:
dic_alunos[corrigir_nome(nome)] = {
"nota": nota,
"situacao": situacao
}

print(dic_alunos)

{'Ana Silva': {'nota': 8.5, 'situacao': 'Aprovado'}, 'Carlos Souza': {'nota': 7.0, 'situacao': 'Aprovado'}, 'Mariana Santos': {'nota': 9.2, 'situacao': 'Aprovado'}}


def listar_emails(emails):
contador = 1

for email in emails:
    print(f"{contador}. {email}")
    contador += 1

lista_emails = [
"ana@email.com",
"carlos@email.com",
"mariana@email.com"
]

listar_emails(lista_emails)

  1. ana@email.com
  2. carlos@email.com
  3. mariana@email.com

pip install groq
import os
from google.colab import userdata
os.environ["GROQ_API_KEY"] = userdata.get('Groq')

2 respostas

!pip install -q groq
from groq import Groq

client = Groq()

def resumir_email(conteudo_email):
"""
Recebe o conteúdo de um e-mail e retorna um resumo.
"""

resposta = client.chat.completions.create(
    model="llama-3.3-70b-versatile",
    messages=[
        {
            "role": "system",
            "content": (
                "Você é um assistente especializado em resumir "
                "e-mails de forma clara e objetiva."
            )
        },
        {
            "role": "user",
            "content": (
                f"Resuma o seguinte e-mail em até 3 linhas:\n\n"
                f"{conteudo_email}"
            )
        }
    ],
    temperature=0.3
)

return resposta.choices[0].message.content

def processar_emails(lista_emails):
"""
Percorre uma lista de e-mails e imprime seus resumos.
"""

for indice, email in enumerate(lista_emails, start=1):
    try:
        resumo = resumir_email(email)

        print("\n" + "=" * 40)
        print(f"Resumo do e-mail {indice}")
        print("=" * 40)
        print(resumo)

    except Exception as erro:
        print(f"Erro ao processar o e-mail {indice}: {erro}")

emails = [
"""
Prezado cliente,

Informamos que sua assinatura será renovada automaticamente
no próximo dia 15. Caso deseje cancelar, acesse sua conta.

Atenciosamente,
Equipe de Suporte
""",
"""
Olá equipe,

A reunião do projeto foi remarcada para sexta-feira às 14h.
Por favor, atualizem suas agendas.

Obrigado.
"""

]

processar_emails(emails)

========================================
Resumo do e-mail 1

Sua assinatura será renovada automaticamente no dia 15.
Caso deseje cancelar, acesse sua conta.
Atenciosamente, Equipe de Suporte

========================================
Resumo do e-mail 2

A reunião do projeto foi remarcada para sexta-feira às 14h.
Atulizem suas agendas, por favor.
Obrigado.


def processar_emails(lista_emails):
for indice, email in enumerate(lista_emails, start=1):
try:
resumo = resumir_email(email)

        print(
            f"\n{'=' * 50}\n"
            f"RESUMO DO E-MAIL {indice}\n"
            f"{'=' * 50}\n"
            f"Quantidade de caracteres do e-mail: {len(email)}\n"
            f"Quantidade de caracteres do resumo: {len(resumo)}\n\n"
            f"Resumo:\n{resumo}\n"
            f"{'=' * 50}"
        )

    except Exception as erro:
        print(f"Erro ao processar o e-mail {indice}: {erro}")
        

emails = [
"ana@email.com",
"carlos@email.com",
"mariana@email.com"
]

for indice, email in enumerate(emails, start=1):
print(f"E-mail {indice}: {email}")

E-mail 1: ana@email.com
E-mail 2: carlos@email.com
E-mail 3: mariana@email.com


def processar_emails(lista_emails):
for indice, email in enumerate(lista_emails, start=1):

    resumo = resumir_email(email)

    print(f"\n{'=' * 50}")
    print(f"RESUMO DO E-MAIL {indice}")
    print(f"{'=' * 50}")
    print(resumo)
    print(f"{'=' * 50}")

emails = [
"""
Prezado cliente,

Informamos que sua assinatura será renovada automaticamente
no próximo dia 15. Caso deseje cancelar, acesse sua conta.

Atenciosamente,
Equipe de Suporte
""",
"""
Olá equipe,

A reunião do projeto foi remarcada para sexta-feira às 14h.
Por favor, atualizem suas agendas.

Obrigado.
"""

]

processar_emails(emails)

==================================================
RESUMO DO E-MAIL 1

Sua assinatura será renovada automaticamente no dia 15.
Caso deseje cancelar, acesse sua conta.
Atenciosamente, Equipe de Suporte

==================================================
RESUMO DO E-MAIL 2

A reunião do projeto foi remarcada para sexta-feira às 14h.
Atualize suas agendas, por favor.
Obrigado.

Olá, Marcelo! Como vai?

Parabéns pela realização das atividades!

Você apresentou uma sequência muito completa de exemplos em Python, demonstrando domínio em estruturas de repetição, manipulação de listas e dicionários, funções para padronização de nomes e até integração com bibliotecas externas para resumir e-mails. Além disso, mostrou atenção em aplicar boas práticas como modularização e clareza na saída dos resultados.

É importante perceber que você conseguiu evoluir de exemplos básicos (listas e loops) até aplicações mais avançadas, como processamento de textos e integração com IA para automatizar tarefas. Esse percurso evidencia não apenas aprendizado técnico, mas também visão prática de como aplicar Python em cenários reais.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Tratamento de exceções: garantir que entradas inválidas ou erros de conexão não interrompam o fluxo.
  • Organização modular: separar funções em arquivos distintos e criar um pequeno pacote para reutilização.
  • Persistência de dados: salvar resultados em banco de dados ou arquivos estruturados (JSON, CSV) para análises futuras.

Ah uma pergunta: Você gostaria de expandir esse projeto para criar um sistema completo de gerenciamento de e-mails e contatos, ou prefere continuar explorando exemplos pontuais para consolidar cada conceito?

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!