Skip to content

Commit 4fdc9a0

Browse files
committed
corrijo md
1 parent 8e84d95 commit 4fdc9a0

22 files changed

Lines changed: 241 additions & 41 deletions

.obsidian/workspace.json

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
"state": {
1414
"type": "markdown",
1515
"state": {
16-
"file": "Hello-Python/HelloPython.md",
16+
"file": "Hello-Python/Intermediate/CLASE_06_FILE_HANDLING.md",
1717
"mode": "preview",
1818
"source": false
1919
},
2020
"icon": "lucide-file",
21-
"title": "HelloPython"
21+
"title": "CLASE_06_FILE_HANDLING"
2222
}
2323
}
2424
]
@@ -171,16 +171,18 @@
171171
},
172172
"active": "fb415350e3228486",
173173
"lastOpenFiles": [
174+
"Hello-Python/Basic/CLASE_06.md",
175+
"Hello-Python/Basic/CLASE_03.md",
176+
"Hello-Python/archive/HelloPython copia.md",
177+
"Hello-Python/HelloPython.md",
174178
"Hello-Python/archive/HelloPython_backup 1.md",
175179
"Hello-Python/archive/INDICE_ESTUDIO_PYTHON_PRINCIPIANTE 1.md",
176180
"Hello-Python/archive/INDICE_ESTUDIO_PYTHON_PRINCIPIANTE.md",
177-
"Hello-Python/HelloPython.md",
178181
"Hello-Python/archive/_TEMPLATE_CLASE.md",
179182
"Hello-Python/Basic/CLASE_08.md",
180183
"Hello-Python/Basic/CLASE_13.md",
181184
"keyboard-shortcuts-macos.pdf",
182185
"Hello-Python/archive/HelloPython copia 1.md",
183-
"Hello-Python/archive/HelloPython copia.md",
184186
"Hello-Python/Basic/CLASE_00.md"
185187
]
186188
}

Hello-Python/Basic/CLASE_03.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
# Clase 03 — Operadores (Aritméticos, Comparación y Lógicos)
55

66
## Apertura narrativa
7+
78
Los operadores son el lenguaje de las decisiones y los cálculos. Con ellos sumas un total, decides si una condición se cumple, o combinas reglas. Hoy verás cómo pensar y expresar operaciones de manera clara y segura.
89

910
## Por qué te importa
11+
1012
- Aritmética fiable para cálculos (precios, promedios, porcentajes).
1113
- Comparación para validar entradas y ordenar decisiones.
1214
- Lógica para combinar reglas (`and`/`or`/`not`) con precedencia clara.
1315

1416
## Demostración guiada
17+
1518
```python
1619
# Aritmética
1720
subtotal = 120
@@ -29,43 +32,53 @@ print("¿Es mayor de edad?", edad >= mayor_de_edad)
2932
es_estudiante = True
3033
aplica_descuento = (edad < 26) or es_estudiante
3134
print("¿Descuento aplica?", aplica_descuento)
35+
3236
```
37+
3338
## Puntos clave
39+
3440
- Usa paréntesis cuando dudes de la precedencia.
3541
- Evita expresiones densas: crea variables intermedias.
3642

3743
## Micro‑kata (10–12 min)
44+
3845
1) Calculadora mínima (solo `+`, `-`, `*`, `/`): pide dos números y la operación, y muestra el resultado (maneja división por cero).
3946
2) Comparador: pide dos números y muestra si el primero es `>`, `<` o `==` que el segundo.
4047
3) Paridad: pide un entero y dice si es par o impar usando `%`.
4148

4249
## Cheatsheet completo
50+
4351
- Aritméticos: `+`, `-`, `*`, `/` (float), `//` (entera), `%` (módulo), `**` (potencia)
4452
- Comparación: `==`, `!=`, `>`, `>=`, `<`, `<=`
4553
- Lógicos: `and`, `or`, `not`
4654
- Strings: `+` concatena, `*` repite (solo int)
4755
- Orden y paréntesis: `**` `>` `*`, `/`, `//`, `%` `>` `+`, `-`; luego comparaciones; luego lógicos (`and` antes que `or`). Usa paréntesis si tienes dudas.
4856

4957
## Errores frecuentes
58+
5059
- División por cero: ZeroDivisionError.
5160
- Comparar strings por longitud sin querer: usa `len(...)` explícitamente si eso buscas.
5261
- Precedencia confusa: añade paréntesis para hacer la intención explícita.
5362

5463
## Prueba automática
64+
5565
- Desde Hello-Python: `../.venv/bin/python -m unittest -v`
5666
- Deben pasar los tests de `tests/test_operators_utils.py`.
5767

5868
## Material de apoyo
69+
5970
- Utilidades de operadores: `Basic/operators_utils.py`
6071
- Pruebas: `tests/test_operators_utils.py`
6172

6273
## Qué te llevas hoy
74+
6375
- Sabes combinar operadores aritméticos, de comparación y lógicos con claridad.
6476
- Puedes validar entradas y calcular resultados evitando trampas comunes.
6577

6678
## Siguiente paso
79+
6780
- Condicionales: usarás operadores para tomar decisiones (`if`/`elif`/`else`) de manera estructurada.
6881

6982
---
7083

71-
**⬅️ [Anterior: Clase 02 - Variables y Strings](CLASE_02.md) | ⏭️ [Siguiente: Clase 04 - Listas](CLASE_04.md) | [🏠 Volver al Índice](../../HelloPython.md)**
84+
**⬅️ [Anterior: Clase 02 - Variables y Strings](CLASE_02.md) | ⏭️ [Siguiente: Clase 04 - Listas](CLASE_04.md) | [🏠 Volver al Índice](../../HelloPython.md)**

Hello-Python/Basic/CLASE_04.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,4 @@ print(nums, extra, sub)
7474

7575
---
7676

77-
**⬅️ [Anterior: Clase 03 - Operadores](CLASE_03.md) | ⏭️ [Siguiente: Clase 05 - Tuplas](CLASE_05.md) | [🏠 Volver al Índice](../../HelloPython.md)**
77+
**⬅️ [Anterior: Clase 03 - Operadores](CLASE_03.md) | ⏭️ [Siguiente: Clase 05 - Tuplas](CLASE_05.md) | [🏠 Volver al Índice](../../HelloPython.md)**

Hello-Python/Basic/CLASE_05.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
# Clase 05 — Tuplas (colecciones ordenadas e inmutables)
55

66
## Apertura narrativa
7+
78
Una tupla es como una foto: captura un conjunto de valores en un momento y no cambia. Cuando necesitas garantizar que “esto no se toca”, las tuplas te dan seguridad y claridad.
89

910
## Por qué te importa
11+
1012
- Estructuras datos ordenados que no deben cambiar (configuraciones, coordenadas, fechas).
1113
- Te permite usar elementos como claves en diccionarios si son hashables.
1214
- Evitas mutaciones accidentales que luego son difíciles de rastrear.
1315

1416
## Demostración guiada
17+
1518
```python
1619
person = ("Brais", "Moure", 35)
1720
print(len(person)) # medir
@@ -42,11 +45,13 @@ print(person2)
4245
```
4346

4447
## Micro‑kata (7–10 min)
48+
4549
- Dada una tupla con nombres, crea otra tupla con nombres únicos preservando el orden.
4650
- Muestra la subtupla de los 2 últimos nombres usando `tupla[-2:]`.
4751
- Pista: usa `in`, `not in` y concatenación con `+`.
4852

4953
## Cheatsheet de tuplas
54+
5055
- Crear: `()`, `(elemento,)` para una tupla de 1 elemento, `tuple(iterable)`
5156
- Medir: `len(tupla)`
5257
- Acceso: `tupla[i]`, `tupla[-1]`
@@ -58,23 +63,28 @@ print(person2)
5863
- Pertenencia: `in`, `not in`
5964

6065
## Errores frecuentes
66+
6167
- `TypeError` al intentar asignar `tupla[i] = valor` (inmutables).
6268
- `ValueError` en `.index(x)` si `x` no existe.
6369
- Desempaquetado con cantidades diferentes de variables y elementos.
6470

6571
## Prueba/ejecución (opcional)
72+
6673
- Ejecuta `Basic/05_tuples.py` para ver las demos.
6774
- Practica convirtiendo entre `list` y `tuple` para mutar con control.
6875

6976
## Material de apoyo
77+
7078
- Código de referencia: `Basic/05_tuples.py`
7179

7280
## Qué te llevas hoy
81+
7382
- Sabes cuándo elegir `tuple` frente a `list` y cómo trabajar con slicing, conteo e inmutabilidad.
7483

7584
## Siguiente paso
85+
7686
- Clase 06: `set` (colecciones desordenadas, sin duplicados).
7787

7888
---
7989

80-
**⬅️ [Anterior: Clase 04 - Listas](CLASE_04.md) | ⏭️ [Siguiente: Clase 06 - Sets](CLASE_06.md) | [🏠 Volver al Índice](../../HelloPython.md)**
90+
**⬅️ [Anterior: Clase 04 - Listas](CLASE_04.md) | ⏭️ [Siguiente: Clase 06 - Sets](CLASE_06.md) | [🏠 Volver al Índice](../../HelloPython.md)**

Hello-Python/Basic/CLASE_06.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
# Clase 06 — Sets (colecciones sin duplicados)
55

66
## Apertura narrativa
7+
78
Un `set` es como una bolsa mágica donde cada cosa aparece solo una vez. Cuando limpias datos, buscas pertenencia rápida o quieres operaciones de teoría de conjuntos, `set` es tu mejor aliado.
89

910
## Por qué te importa
11+
1012
- Elimina duplicados de forma simple.
1113
- Búsqueda de pertenencia `in`/`not in` muy eficiente.
1214
- Operaciones potentes: unión `|`, intersección `&`, diferencia `-`, diferencia simétrica `^`.
1315

1416
## Demostración guiada
17+
1518
```python
1619
nums = {1, 2, 3, 3, 2}
1720
print(nums) # {1, 2, 3} sin duplicados
@@ -40,10 +43,12 @@ print(2 in unicos) # pertenencia
4043
```
4144

4245
## Micro‑kata (7–10 min)
46+
4347
- Dada una lista de emails con duplicados y mayúsculas/minúsculas mezcladas, normaliza (`lower()`), elimina duplicados y cuenta cuántos únicos quedan.
4448
- Muestra la intersección entre dos grupos de emails.
4549

4650
## Cheatsheet de sets
51+
4752
- Crear: `{}`, `set(iterable)` (ojo: `{}` crea `dict`, para set vacío usa `set()`)
4853
- Añadir/eliminar: `.add(x)`, `.remove(x)`, `.discard(x)`, `.pop()`
4954
- Limpieza: `.clear()`
@@ -52,22 +57,27 @@ print(2 in unicos) # pertenencia
5257
- Conversión: `list(set(lista))` para quitar duplicados preservando luego con cuidado el orden si lo reconstruyes
5358

5459
## Errores frecuentes
60+
5561
- Usar `{}` esperando un set vacío: crea un `dict`; usa `set()`.
5662
- `.remove(x)` sobre elemento inexistente lanza `KeyError`; si no estás seguro, usa `.discard(x)`.
5763
- Conjuntos no mantienen orden; no los uses cuando el orden sea importante.
5864

5965
## Prueba/ejecución (opcional)
66+
6067
- Ejecuta `Basic/06_sets.py` para ver las demos.
6168

6269
## Material de apoyo
70+
6371
- Código de referencia: `Basic/06_sets.py`
6472

6573
## Qué te llevas hoy
74+
6675
- Limpias duplicados, pruebas pertenencia y combinas conjuntos con claridad y seguridad.
6776

6877
## Siguiente paso
78+
6979
- Clase 07: diccionarios (`dict`), pares clave-valor muy versátiles.
7080

7181
---
7282

73-
**⬅️ [Anterior: Clase 05 - Tuplas](CLASE_05.md) | ⏭️ [Siguiente: Clase 07 - Diccionarios](CLASE_07.md) | [🏠 Volver al Índice](../../HelloPython.md)**
83+
**⬅️ [Anterior: Clase 05 - Tuplas](CLASE_05.md) | ⏭️ [Siguiente: Clase 07 - Diccionarios](CLASE_07.md) | [🏠 Volver al Índice](../../HelloPython.md)**

Hello-Python/Basic/CLASE_07.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
# Clase 07 — Diccionarios (pares clave‑valor)
55

66
## Apertura narrativa
7+
78
Un `dict` es como una agenda: buscas por clave y obtienes el valor al instante. Ideal para representar entidades (usuario, producto) y acceder a sus campos de forma directa.
89

910
## Por qué te importa
11+
1012
- Acceso por clave rápido y expresivo.
1113
- APIs claras y extensibles para datos estructurados.
1214
- Métodos útiles para inspección: `.keys()`, `.values()`, `.items()`.
1315

1416
## Demostración guiada
17+
1518
```python
1619
user = {"nombre": "Brais", "apellido": "Moure", "edad": 35}
1720
print(user["nombre"]) # acceso por clave
@@ -40,10 +43,12 @@ print(copia)
4043
```
4144

4245
## Micro‑kata (7–10 min)
46+
4347
- Dada una lista de tuplas `(nombre, nota)`, crea un `dict` y muestra solo alumnos con nota `>= 7`.
4448
- A partir de un `dict` de productos, calcula el `precio_total` acumulado.
4549

4650
## Cheatsheet de diccionarios
51+
4752
- Crear: `{clave: valor}`, `dict(pares)`, `dict.fromkeys(claves, valor)`
4853
- Acceso/actualización: `d[clave]`, `d.get(clave, por_defecto)`, `d[clave] = valor`
4954
- Inspección: `.keys()`, `.values()`, `.items()`
@@ -52,22 +57,27 @@ print(copia)
5257
- Pertenencia: `in` (sobre claves)
5358

5459
## Errores frecuentes
60+
5561
- `KeyError` al acceder con `d[clave]` inexistente; usa `get()` si no estás seguro.
5662
- Mutar mientras iteras sobre `d.items()` puede generar comportamientos inesperados.
5763
- Claves deben ser `hashables` (inmutables típicamente: `str`, `int`, `tuple` de hashables).
5864

5965
## Prueba/ejecución (opcional)
66+
6067
- Ejecuta `Basic/07_dicts.py` para ver las demos.
6168

6269
## Material de apoyo
70+
6371
- Código de referencia: `Basic/07_dicts.py`
6472

6573
## Qué te llevas hoy
74+
6675
- Modelas entidades con claridad, iteras por claves/valores y evitas errores comunes.
6776

6877
## Siguiente paso
78+
6979
- Clase 08: condicionales (`if`/`elif`/`else`) para tomar decisiones.
7080

7181
---
7282

73-
**⬅️ [Anterior: Clase 06 - Sets](CLASE_06.md) | ⏭️ [Siguiente: Clase 08 - Condicionales](CLASE_08.md) | [🏠 Volver al Índice](../../HelloPython.md)**
83+
**⬅️ [Anterior: Clase 06 - Sets](CLASE_06.md) | ⏭️ [Siguiente: Clase 08 - Condicionales](CLASE_08.md) | [🏠 Volver al Índice](../../HelloPython.md)**

Hello-Python/Basic/CLASE_08.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
# Clase 08 — Condicionales (tomar decisiones)
55

66
## Apertura narrativa
7+
78
Los condicionales son tus semáforos lógicos: te permiten decidir qué camino tomar según los datos. Desde validar formularios hasta activar descuentos, `if`/`elif`/`else` son el corazón del control de flujo.
89

910
## Por qué te importa
11+
1012
- Activar o desactivar bloques de código según condiciones.
1113
- Expresar reglas de negocio de forma clara y legible.
1214
- Evitar errores típicos al comparar, combinar condiciones y tratar valores vacíos.
1315

1416
## Demostración guiada
17+
1518
```python
1619
x = 15
1720
if x > 10 and x < 20:
@@ -32,33 +35,40 @@ if s == "Hola":
3235
```
3336

3437
## Micro‑kata (7–10 min)
38+
3539
- Pide una `edad` y clasifícala: `< 18` = "menor", `18–64` = "adulto", `>= 65` = "senior".
3640
- Valida una contraseña: longitud `>= 8`, contiene dígito y letra; imprime mensajes claros.
3741

3842
## Cheatsheet de condicionales
43+
3944
- Estructura: `if`, `elif`, `else` (en orden mutuamente excluyente)
4045
- Comparación: `==`, `!=`, `>`, `<`, `>=`, `<=`
4146
- Lógicos: `and`, `or`, `not` (usa paréntesis si hay duda de precedencia)
4247
- Pertenencia/identidad (avanzado): `in`, `not in`, `is`, `is not` (cuidado, `is` no es igual que `==`)
4348
- Truthiness: vacío/`0`/`None`/colección vacía evalúan a `False`
4449

4550
## Errores frecuentes
51+
4652
- Escribir `=` en lugar de `==` al comparar.
4753
- Ramas inalcanzables por orden incorrecto de condiciones.
4854
- Olvidar paréntesis cuando mezclas `and` y `or` y cambia la intención.
4955

5056
## Prueba/ejecución (opcional)
57+
5158
- Ejecuta `Basic/08_conditionals.py` para ver las demos.
5259

5360
## Material de apoyo
61+
5462
- Código de referencia: `Basic/08_conditionals.py`
5563

5664
## Qué te llevas hoy
65+
5766
- Tomas decisiones claras con `if`/`elif`/`else` y dominas comparaciones y truthiness.
5867

5968
## Siguiente paso
69+
6070
- Clase 09: bucles (`while`, `for`, `break`, `continue`, `else`).
6171

6272
---
6373

64-
**⬅️ [Anterior: Clase 07 - Diccionarios](CLASE_07.md) | ⏭️ [Siguiente: Clase 09 - Bucles](CLASE_09.md) | [🏠 Volver al Índice](../../HelloPython.md)**
74+
**⬅️ [Anterior: Clase 07 - Diccionarios](CLASE_07.md) | ⏭️ [Siguiente: Clase 09 - Bucles](CLASE_09.md) | [🏠 Volver al Índice](../../HelloPython.md)**

0 commit comments

Comments
 (0)