Tiempo total: 3 horas · Objetivo: completar 7 u 8 mini-retos y, si te alcanza, una app integrada (código 1900) que reutilice tu propio código.
- Haz fork de este repo y clónalo.
- Usa un <ALIAS> sin espacios ni acentos (tu usuario de GitHub o
nombre-apellidoen minúsculas). - Para cada mini-reto, crea un archivo con este formato exacto:
<CODIGO_RETO>_<ALIAS>_v<N>.<ext>(ej.:1007_juana-saavedra_v1.py). - Si haces la app integrada, crea la carpeta
1900_<ALIAS>_app/conREADME.md(cómo ejecutar) y, si quieres,requirements.txtysrc/. - Sube tus cambios a tu fork y abre un Pull Request a
maintitulado: <ALIAS> — Entrega Nivel Básico.
- Mini-retos: 1001–1008 (elige 7 u 8).
- App integrada: 1900 (Math & Logic Kit).
Nombre de archivo obligatorio: <CODIGO_RETO>_<ALIAS>_v<N>.<ext>
Usa solo la librería estándar de Python. Al final de cada archivo agrega, en comentarios, 3 pruebas (entrada → salida esperada). La salida se compara literalmente (cuida espacios y saltos de línea).
| Código | Nombre | Qué se espera (detalles clave) | Entrada / Salida mínima | Archivo | Docs útiles |
|---|---|---|---|---|---|
| 1001 | Calculadora precisa | Implementa + − × ÷ con redondeo comercial a 2 decimales usando decimal.Decimal y ROUND_HALF_UP. División por cero: imprime ERROR:DIV0. | Entrada: a op b (ej.: 5.005 + 2) · Salida: número a 2 decimales. | 1001_<ALIAS>_v1.py | decimal |
| 1002 | Ecuación de 2º grado | Resuelve ax^2+bx+c=0. Si a=0 → lineal. Imprime delta=.... Si Δ es cuadrado perfecto, raíces enteras exactas; si no, usa Decimal a 4 decimales (ROUND_HALF_UP). Si Δ<0: sin raices reales. | Entrada: a b c · Salida: delta=... r1=... r2=... o sin raices reales. | 1002_<ALIAS>_v1.py | math · decimal |
| 1003 | Adivina el número (semilla) | Juego 1..100 con pistas ↑/↓ y conteo de intentos. Debe aceptar --seed=<n> y usar random.seed() para reproducibilidad. | I/O en consola; terminar con acertaste en N. | 1003_<ALIAS>_v1.py | random · argparse |
| 1004 | Conversor °C↔°F↔K (múltiples líneas) | Lee varias líneas desde stdin (hasta EOF). Soporta C/F/K. Si el resultado < 0 K: ERROR:ABSOLUTE_ZERO. Redondea a 2 decimales con Decimal. | Cada línea: valor unidad_origen unidad_destino · Salida: una línea por conversión. | 1004_<ALIAS>_v1.py | I/O · decimal |
| 1005 | ¿Es primo? (hasta 106) | Imprime primo o no primo. 0, 1 y negativos → no primo. Optimiza cortando en √n. | Entrada: n · Salida: primo/no primo. | 1005_<ALIAS>_v1.py | math |
| 1006 | Tabla de multiplicar “bonita” | Imprime la tabla de N del 1 al 10 alineada en columnas, sin espacios al final de línea. | Entrada: N · Salida: 10 líneas “N x i = r” alineadas. | 1006_<ALIAS>_v1.py | format strings |
| 1007 | Palíndromos con acentos y signos | Ignora mayúsculas, espacios, signos y acentos/diacríticos. Normaliza con unicodedata (NFKD) y filtra marcas de combinación. | Entrada: una línea de texto · Salida: si / no. | 1007_<ALIAS>_v1.py | unicodedata |
| 1008 | Simulador de dados (histograma) | Simula N lanzamientos (caras 1..6) y muestra frecuencias ordenadas 1→6. Acepta --seed para reproducibilidad. | Entrada: N (opcional --seed) · Salida: 6 líneas “cara: conteo”. | 1008_<ALIAS>_v1.py | random · argparse |
- E/S exacta: la comparación es literal.
- 3 pruebas (entrada → salida) en comentarios al final del archivo.
- Solo librería estándar de Python.
- Nomenclatura exacta del archivo. Nombre incorrecto: −5%.
| Código | Debe reutilizar | Qué agrega | Entregables | Puntaje máx. |
|---|---|---|---|---|
| 1900 | 1001, 1002, 1003, 1005, 1006, 1007, 1008 | Un menú en consola que llama tus funciones, manejo básico de errores y mensajes claros. | Carpeta 1900_<ALIAS>_app/ con README.md (cómo correr y qué módulos integra) y, si quieres, src/. | 140 |
- Reutiliza funciones: impórtalas desde tus archivos o muévalas a
src/utils.py. - Menú simple: opciones 1..7 y “salir”.
- Mini-reto (máx. 70 pts): funciona (60%) · casos borde / 3 pruebas (20%) · código claro (10%) · defensa breve (10%).
- App 1900 (máx. 140 pts): integración (50%) · cohesión/reuso (20%) · manejo de errores (20%) · README (10%).
- Redondeo con
decimalyROUND_HALF_UP(1001, 1002, 1004). - Semillas reproducibles y argumentos de línea (1003, 1008).
- Normalización Unicode para acentos/diacríticos (1007).
- Lectura múltiple hasta EOF y formato exacto de salida (1004, 1006).
Durante la revisión se puede pedir una edición en vivo de 2 minutos (p. ej., ajustar un formato o añadir un caso borde).
- 7 u 8 mini-retos con nombres correctos:
100x_<ALIAS>_vN.py. - 3 pruebas en comentarios por archivo.
- Si hiciste la app: carpeta
1900_<ALIAS>_app/+README.md+ menú funcional. - Pull Request:
<ALIAS> — Entrega Nivel Básico.
Guía oficial · decimal · random · argparse · unicodedata · I/O · format strings
Abre un Issue titulado Q-<ALIAS>: asunto. ¡Éxitos! 🚀