import asyncio
cursos = {
"Python Avançado": {"vagas": 2, "inscritos": []},
"Java para Iniciantes": {"vagas": 1, "inscritos": []},
"Machine Learning": {"vagas": 0, "inscritos": []},
}
alunos = [
{"nome": "Alice", "curso": "Python Avançado"},
{"nome": "Bruno", "curso": "Python Avançado"},
{"nome": "Carlos", "curso": "Java para Iniciantes"},
{"nome": "Daniela", "curso": "Machine Learning"},
{"nome": "Alice", "curso": "Python Avançado"}, # Tentativa de inscrição duplicada
]
async def verificacao_vagas(aluno):
for curso in cursos:
if aluno["curso"] == curso:
print(f"Inscrevendo {aluno["nome"]} no curso {aluno["curso"]}...")
if aluno["nome"] in cursos[curso]["inscritos"]:
print(f"{aluno["nome"]} já está inscrita no curso {aluno["curso"]}! Inscrição rejeitada.")
return
if cursos[curso]["vagas"] == 0:
print(f"Turma lotada! {aluno["nome"]} não pôde se inscrever no curso {aluno["curso"]}.")
return
cursos[curso]["inscritos"].append(aluno["nome"])
cursos[curso]["vagas"] -= 1
print(f"Inscrição confirmada para {aluno["nome"]} no curso {aluno["curso"]}")
return
async def main():
tarefas = [asyncio.create_task(verificacao_vagas(aluno)) for aluno in alunos]
await asyncio.gather(*tarefas)
print("Todas as inscrições foram processadas!")
asyncio.run(main())