1
resposta

Minha resposta

import asyncio
import math

usuarios = [
    {"nome": "Ana", "vip": True, "notificacoes_ativadas": True},
    {"nome": "João", "vip": False, "notificacoes_ativadas": True},
    {"nome": "Carla", "vip": False, "notificacoes_ativadas": False},
]

async def envia_notificacoes(usuario):
    if usuario["vip"] and usuario["notificacoes_ativadas"]:
        print(f'Notificação VIP para {usuario["nome"]} enviada!')
        return
    elif not usuario["vip"] and usuario["notificacoes_ativadas"]:
        print(f'Notificação normal para {usuario["nome"]} enviada!')
        return
    else:
        print(f'{usuario["nome"]} desativou as notificações. Nada foi enviado')
        return
    
async def main():
    print("Enviando notificações...")
    tarefas = [asyncio.create_task(envia_notificacoes(usuario)) for usuario in usuarios]
    await asyncio.gather(*tarefas)
    print("Todas as notificações foram processadas!")

asyncio.run(main())
1 resposta

Oi, Igor! Como vai?

Agradeço por compartilhar.

Seu código está muito bem estruturado, usando asyncio para lidar com várias notificações de forma assíncrona. Gostei da forma como você separou a lógica de envio de acordo com o perfil de cada usuário.

Continue praticando, está no caminho certo.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!