Cuántos OK
`resultados` es una lista donde un fallo se representa con None. Devolvé cuántos NO son None. Ejemplo: cuantos_ok([1, None, 3]) → 2
Entrá y llevá tu progreso —ejercicios, medallas y Pokémon— a cualquier dispositivo. 🔄
Si tu cuenta ya tiene progreso guardado, se carga ese al entrar.
Entraste como . Tu progreso se sincroniza solo. 🔄
`resultados` es una lista donde un fallo se representa con None. Devolvé cuántos NO son None. Ejemplo: cuantos_ok([1, None, 3]) → 2
🎯 Meta: lanzar muchas corrutinas juntas y recoger todos los resultados con asyncio.gather.
Crear tareas a mano y esperarlas una por una es tedioso. asyncio.gather lo hace en una línea: lanza todas, espera a que terminen, y te devuelve la lista de resultados en el mismo orden en que las pasaste.
gatherimport asyncio
async def bajar(n):
await asyncio.sleep(1)
return n * 10
async def principal():
resultados = await asyncio.gather(bajar(1), bajar(2), bajar(3))
print(resultados) # [10, 20, 30] → ¡en orden! (tardó ~1s)
asyncio.run(principal())
El orden de los resultados coincide con el de las corrutinas, aunque terminen en otro orden. Eso te deja emparejarlos con sus nombres por posición:
nombres = ["pikachu", "onix", "snorlax"]
valores = [100, 80, 160]
ficha = {n: v for n, v in zip(nombres, valores)}
Si una tarea devuelve None (o usás return_exceptions=True), conviene revisar qué salió bien:
resultados = [100, None, 160]
ok = [r for r in resultados if r is not None] # [100, 160]
fallaron = resultados.count(None) # 1
💡 gather es la herramienta más usada de asyncio: “hacé todo esto junto y traeme los resultados”.
P: `asyncio.gather(a, b, c)` devuelve los resultados…
+ en el mismo orden en que los pediste
- en orden de finalización
- mezclados al azar
> El orden coincide con el de las corrutinas, aunque terminen en otro orden.
P: Si una tarea falló y dejó `None`, para quedarte con las buenas…
+ filtrás las que no son None: `[r for r in res if r is not None]`
- las usás todas igual
- reiniciás todo el programa
> Descartás los `None` y te quedás con los resultados válidos.
🪢 La Líder Bea te espera para recolectar resultados.