1
resposta

[RESPOSTA]

import asyncio

pedidos = [
    {"id": 101, "pagamento_aprovado": True, "estoque_disponivel": True},
    {"id": 102, "pagamento_aprovado": True, "estoque_disponivel": False},
    {"id": 103, "pagamento_aprovado": False, "estoque_disponivel": True},
    {"id": 104, "pagamento_aprovado": True, "estoque_disponivel": True},
    {"id": 105, "pagamento_aprovado": False, "estoque_disponivel": False},
]

async def verifica_pagamento(pedido):
    if pedido["pagamento_aprovado"]:
        print(f"Pagamento aprovado para pedido #{pedido["id"]}.")
        return True
    else:
        print(f"Pagamento recusado para pedido #{pedido["id"]}. Pedido cancelado.")
        return False

async def verifica_estoque(pedido):
    if pedido["estoque_disponivel"]:
        print(f"Estoque disponivel para pedido #{pedido["id"]}.")
        return True
    else:
        print(f"Estoque indisponível para pedido #{pedido["id"]}. Pedido cancelado.\n")
        return False

async def processar_pedido(pedido):
    print(f"Processando pedido #{pedido["id"]}...\n")

    pagamento = await verifica_pagamento(pedido)
    if not pagamento:
        return

    estoque = await verifica_estoque(pedido)
    if not estoque:
        return

    print(f"Pedido #{pedido["id"]} confirmado! Enviado para entrega.\n")

async def main():
    for pedido in pedidos[:3]:
        await processar_pedido(pedido)
    print("\nTodos os pedidos foram processados!\n")


if __name__ == "__main__":
    asyncio.run(main())
1 resposta

Olá, Maurício! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções assíncronas com async def para estruturar tarefas simultâneas, utilizou muito bem o await para controlar o fluxo de execução e ainda compreendeu a importância do laço de eventos com asyncio.run() para iniciar e gerenciar o processamento dos pedidos de forma eficiente.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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