Python Lab
Aprende • Practica • Evalúa (sin spoilers)
Progreso: 0/0 • 0%
Cargando Pyodide… (primera vez puede tardar)
Editor (Python)
Reto actual
Selecciona una lección…
Ayuda paso a paso
Pulsa “🆘 Ayuda” cuando te quedes trabado. Te doy pistas, no spoilers.
Resultados
Tu progreso
Puntos = requisitos cumplidos. Tests te abren el ✅⭐.
Los que más duraron
Top por tiempo acumulado (aprox).

Datasets incluidos

Se escriben en el filesystem virtual de Pyodide para practicar lectura de CSV.

Vista rápida

Tip: usa csv.DictReader (estándar). Ej: import csv + open('ventas.csv', encoding='utf-8').

🧱 Tipos básicos

a = 10
b = "Hola"
c = True
print(type(a), type(b), type(c))
  • type(x) te dice qué es.
  • Strings siempre con comillas.

📦 Listas y slicing

x = [2, 4, 6, 8]
print(len(x))
print(x[0])
print(x[1:3])
print(sum(x)/len(x))
  • Python indexa desde 0 (sí, duele al principio).

🔁 for / if

for i in range(1, 6):
    if i % 2 == 0:
        print(i, "par")
    else:
        print(i, "impar")
  • El : y la indentación no son decoración 😅

🧩 Funciones

def area_rect(b, h):
    return b * h

print(area_rect(3, 4))
  • Si un reto pide un nombre exacto, respétalo.

🧠 Diccionarios

freq = {}
for ch in "banana":
    freq[ch] = freq.get(ch, 0) + 1
print(freq)
  • get te ahorra mil if.

📄 Leer CSV (sin librerías)

import csv
with open("ventas.csv", encoding="utf-8") as f:
    rows = list(csv.DictReader(f))
print(rows[0])
  • Todo queda como diccionarios por fila.

🧯 Manejo de errores

try:
    x = int("12a")
except ValueError:
    x = 0
print(x)
  • Errores pasan. Lo importante es cómo reaccionas.

🏗️ Clase rápida

class Cuenta:
    def __init__(self, saldo=0):
        self.saldo = saldo

    def depositar(self, n):
        self.saldo += n
  • OOP: datos + comportamiento.