Skip to content

Commit 26226e8

Browse files
committed
docs: mejorar documentación de lecciones de control de flujo (08-14)\n\n- Documentación completa en español para todas las lecciones de control de flujo (08 a 14)\n- Docstrings detallados, comentarios explicativos y ejemplos de salida\n- Ejercicios prácticos y recursos adicionales\n- Mejor legibilidad y estructura\n- Actualización de fechas a 2025-07-20\n- Actualización de CHANGELOG.md para versión 1.2.0
1 parent 3905c70 commit 26226e8

File tree

12 files changed

+675
-39
lines changed

12 files changed

+675
-39
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,28 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
1616
### Fixed
1717
- N/A
1818

19+
## [1.2.0] - 2025-07-20
20+
21+
### Added
22+
- Documentación completa en español para todas las lecciones de control de flujo (08 a 14)
23+
- Docstrings detallados con objetivos, conceptos clave y recursos adicionales
24+
- Comentarios explicativos para cada ejemplo de código
25+
- Ejemplos de salida esperada para mejor comprensión
26+
- Ejercicios prácticos adicionales en cada lección
27+
- Sección de conceptos importantes resumidos
28+
- Variaciones y experimentos opcionales para práctica
29+
- Enlaces a documentación oficial de Python
30+
- Fechas actualizadas a 2025-07-20
31+
32+
### Changed
33+
- Mejorados nombres de variables y estructura de ejemplos para mayor claridad
34+
- Mejorada legibilidad general del código en la sección de control de flujo
35+
- Actualizada documentación con formato consistente
36+
37+
### Fixed
38+
- Corregidos errores de ortografía y estilo en comentarios
39+
- Mejorada consistencia en el estilo de documentación
40+
1941
## [1.1.0] - 2025-07-12
2042

2143
### Added
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import utils
2+
# from utils import get_max # Importa solo la funcion get_max
3+
4+
numbers = [1, 2, 3, 4, 5]
5+
max_number = utils.get_max(numbers)
6+
7+
8+
print(f"El valor maximo es: {max_number}")

ejercicios/avanzados/utils.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
def get_max(numbers):
2+
max_number = numbers[0]
3+
for number in numbers:
4+
if number > max_number:
5+
max_number = number
6+
return max_number
Lines changed: 94 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,128 @@
1+
"""
2+
Lección 08: Operaciones Aritméticas en Python
3+
4+
Descripción:
5+
Esta lección cubre los operadores aritméticos básicos y avanzados en Python. Aprenderás a realizar sumas, restas,
6+
multiplicaciones, divisiones, módulo, exponenciación y más. También se muestra el uso de la biblioteca math para
7+
operaciones matemáticas avanzadas.
8+
9+
Objetivos:
10+
- Comprender los operadores aritméticos básicos (+, -, *, /, %, **, //)
11+
- Usar operadores de asignación aumentada (+=, -=, *=, /=)
12+
- Aplicar funciones matemáticas avanzadas con la biblioteca math
13+
- Entender la diferencia entre división normal y división entera
14+
15+
Conceptos Clave:
16+
- Operadores aritméticos: símbolos para realizar operaciones matemáticas
17+
- Operadores de asignación: combinan operación y asignación
18+
- math: biblioteca estándar para operaciones matemáticas avanzadas
19+
20+
Recursos Adicionales:
21+
- Documentación oficial: https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex
22+
- Biblioteca math: https://docs.python.org/3/library/math.html
23+
24+
Autor: Jairo Cuartas
25+
Fecha: 2025-07-20
26+
"""
27+
128
import math
229

30+
# =============================================================================
31+
# EJEMPLO 1: Suma
32+
# =============================================================================
333
x = 10
4-
# Suma
534
x = x + 5
6-
print("Suma:", x)
35+
print("Suma:", x) # Salida esperada: Suma: 15
736

8-
# Resta
37+
# =============================================================================
38+
# EJEMPLO 2: Resta
39+
# =============================================================================
940
x = 10
1041
x = x - 3
11-
print("Resta:", x)
42+
print("Resta:", x) # Salida esperada: Resta: 7
1243

13-
# Multiplicación
44+
# =============================================================================
45+
# EJEMPLO 3: Multiplicación
46+
# =============================================================================
1447
x = 10
1548
x = x * 2
16-
print("Multiplicación:", x)
49+
print("Multiplicación:", x) # Salida esperada: Multiplicación: 20
1750

18-
# División
51+
# =============================================================================
52+
# EJEMPLO 4: División
53+
# =============================================================================
1954
x = 10
2055
x = x / 4
21-
print("División:", x)
56+
print("División:", x) # Salida esperada: División: 2.5
2257

23-
# Módulo
58+
# =============================================================================
59+
# EJEMPLO 5: Módulo (resto de la división)
60+
# =============================================================================
2461
x = 10
2562
x = x % 3
26-
print("Módulo:", x)
63+
print("Módulo:", x) # Salida esperada: Módulo: 1
2764

28-
# Exponenciación
65+
# =============================================================================
66+
# EJEMPLO 6: Exponenciación
67+
# =============================================================================
2968
x = 10
3069
x = x ** 2
31-
print("Exponenciación:", x)
70+
print("Exponenciación:", x) # Salida esperada: Exponenciación: 100
3271

33-
# División entera
72+
# =============================================================================
73+
# EJEMPLO 7: División entera
74+
# =============================================================================
3475
x = 10
3576
x = x // 3
36-
print("División entera:", x)
77+
print("División entera:", x) # Salida esperada: División entera: 3
3778

38-
# Operador de asignación aumentada
79+
# =============================================================================
80+
# EJEMPLO 8: Operadores de asignación aumentada
81+
# =============================================================================
3982
x = 10
4083
x += 5
41-
print("Asignación aumentada:", x)
84+
print("Asignación aumentada:", x) # Salida esperada: Asignación aumentada: 15
4285

43-
# Operador de asignación disminuida
4486
x = 10
4587
x -= 2
46-
print("Asignación disminuida:", x)
88+
print("Asignación disminuida:", x) # Salida esperada: Asignación disminuida: 8
4789

48-
# Operador de asignación multiplicada
4990
x = 10
5091
x *= 3
51-
print("Asignación multiplicada:", x)
92+
print("Asignación multiplicada:", x) # Salida esperada: Asignación multiplicada: 30
5293

53-
# Usando la biblioteca math para operaciones avanzadas
54-
# Raíz cuadrada
94+
# =============================================================================
95+
# EJEMPLO 9: Usando la biblioteca math para operaciones avanzadas
96+
# =============================================================================
5597
x = 16
5698
x = math.sqrt(x)
57-
print("Raíz cuadrada:", x)
99+
print("Raíz cuadrada:", x) # Salida esperada: Raíz cuadrada: 4.0
100+
101+
# =============================================================================
102+
# EJERCICIOS PRÁCTICOS
103+
# =============================================================================
104+
# 1. Calcula el área de un círculo de radio 5 (usa math.pi y math.pow)
105+
# 2. Calcula el residuo de dividir 123 entre 7
106+
# 3. Eleva 2 a la potencia de 8 usando el operador **
107+
# 4. Calcula la raíz cúbica de 27 usando math.pow
108+
# 5. Usa operadores de asignación para sumar 10 a una variable inicializada en 0
109+
110+
# =============================================================================
111+
# CONCEPTOS IMPORTANTES
112+
# =============================================================================
113+
"""
114+
1. La división normal (/) siempre devuelve float
115+
2. La división entera (//) devuelve solo la parte entera
116+
3. El operador % devuelve el residuo de la división
117+
4. math.sqrt(x) calcula la raíz cuadrada
118+
5. math.pow(x, y) eleva x a la potencia y
119+
6. Los operadores de asignación combinan operación y asignación
120+
"""
121+
122+
# =============================================================================
123+
# VARIACIONES Y EXPERIMENTOS
124+
# =============================================================================
125+
# Descomenta para experimentar:
126+
# print("Potencia con math.pow:", math.pow(2, 8))
127+
# print("Área de un círculo de radio 5:", math.pi * math.pow(5, 2))
128+
# print("Raíz cúbica de 27:", math.pow(27, 1/3))
Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,97 @@
1+
"""
2+
Lección 09: Estructuras Condicionales (if, elif, else)
3+
4+
Descripción:
5+
Esta lección cubre el uso de las estructuras condicionales en Python. Aprenderás a tomar decisiones en tu código
6+
usando if, elif y else, y a evaluar condiciones booleanas para controlar el flujo del programa.
7+
8+
Objetivos:
9+
- Comprender cómo funcionan las estructuras condicionales
10+
- Usar if, elif y else para tomar decisiones
11+
- Evaluar condiciones booleanas
12+
- Escribir código que responda a diferentes escenarios
13+
14+
Conceptos Clave:
15+
- if: ejecuta un bloque si la condición es verdadera
16+
- elif: evalúa otra condición si la anterior es falsa
17+
- else: ejecuta un bloque si todas las condiciones anteriores son falsas
18+
- Booleanos: True o False
19+
20+
Recursos Adicionales:
21+
- Documentación oficial: https://docs.python.org/3/tutorial/controlflow.html#if-statements
22+
- Operadores de comparación: https://docs.python.org/3/library/stdtypes.html#boolean-values
23+
24+
Autor: Jairo Cuartas
25+
Fecha: 2025-07-20
26+
"""
27+
28+
# =============================================================================
29+
# EJEMPLO 1: Condiciones simples
30+
# =============================================================================
131
is_hot = False
232
is_cold = False
333

434
if is_hot:
5-
print("It's a hot day")
35+
print("Hace calor hoy")
36+
# Salida esperada si is_hot = True: Hace calor hoy
637
elif is_cold:
7-
print("It's a cold day")
38+
print("Hace frío hoy")
39+
# Salida esperada si is_cold = True: Hace frío hoy
840
else:
9-
print("It's a lovely day")
41+
print("El clima está agradable hoy")
42+
# Salida esperada si ambos son False: El clima está agradable hoy
43+
44+
# =============================================================================
45+
# EJEMPLO 2: Cambiando los valores
46+
# =============================================================================
47+
is_hot = True
48+
is_cold = False
49+
50+
if is_hot:
51+
print("Hace calor hoy")
52+
elif is_cold:
53+
print("Hace frío hoy")
54+
else:
55+
print("El clima está agradable hoy")
56+
# Salida esperada: Hace calor hoy
57+
58+
# =============================================================================
59+
# EJEMPLO 3: Condiciones anidadas
60+
# =============================================================================
61+
edad = 20
62+
if edad >= 18:
63+
print("Eres mayor de edad")
64+
else:
65+
print("Eres menor de edad")
66+
# Salida esperada: Eres mayor de edad
67+
68+
# =============================================================================
69+
# EJERCICIOS PRÁCTICOS
70+
# =============================================================================
71+
# 1. Escribe un programa que pregunte la edad y diga si puedes votar (>=18)
72+
# 2. Escribe un programa que pregunte la temperatura y diga si hace frío, calor o está agradable
73+
# 3. Escribe un programa que pregunte si tienes hambre y responda "¡Hora de comer!" o "Sigue trabajando"
74+
75+
# =============================================================================
76+
# CONCEPTOS IMPORTANTES
77+
# =============================================================================
78+
"""
79+
1. Las condiciones se evalúan de arriba hacia abajo
80+
2. Solo se ejecuta el primer bloque cuya condición sea verdadera
81+
3. Puedes tener múltiples elif
82+
4. else es opcional, pero útil para casos por defecto
83+
5. Los booleanos pueden ser variables o resultados de comparaciones
84+
"""
85+
86+
# =============================================================================
87+
# VARIACIONES Y EXPERIMENTOS
88+
# =============================================================================
89+
# Descomenta para experimentar:
90+
# temperatura = 25
91+
# if temperatura > 30:
92+
# print("Hace mucho calor")
93+
# elif temperatura < 15:
94+
# print("Hace mucho frío")
95+
# else:
96+
# print("Temperatura agradable")
1097

Lines changed: 83 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,89 @@
1+
"""
2+
Lección 10: Operadores Lógicos (and, or, not)
3+
4+
Descripción:
5+
Esta lección cubre el uso de los operadores lógicos en Python. Aprenderás a combinar condiciones
6+
usando and, or y not para tomar decisiones más complejas en tu código.
7+
8+
Objetivos:
9+
- Comprender cómo funcionan los operadores lógicos
10+
- Usar and, or y not para combinar condiciones
11+
- Escribir expresiones lógicas complejas
12+
- Evaluar múltiples condiciones en una sola instrucción
13+
14+
Conceptos Clave:
15+
- and: Verdadero solo si ambas condiciones son verdaderas
16+
- or: Verdadero si al menos una condición es verdadera
17+
- not: Invierte el valor lógico (True ↔ False)
18+
- Expresiones lógicas: Combinación de condiciones booleanas
19+
20+
Recursos Adicionales:
21+
- Documentación oficial: https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not
22+
- Tutorial de operadores lógicos: https://realpython.com/python-boolean/
23+
24+
Autor: Jairo Cuartas
25+
Fecha: 2025-07-20
26+
"""
27+
28+
# =============================================================================
29+
# EJEMPLO 1: Operador AND
30+
# =============================================================================
131
has_good_credit = True
232
has_criminal_record = False
333

434
if has_good_credit and not has_criminal_record:
5-
print("You are eligible for a loan.")
35+
print("Eres elegible para un préstamo.")
36+
# Salida esperada: Eres elegible para un préstamo.
637

38+
# =============================================================================
39+
# EJEMPLO 2: Operador OR
40+
# =============================================================================
741
if has_good_credit or has_criminal_record:
8-
print("You are eligible for a loan, but with conditions.")
42+
print("Eres elegible para un préstamo, pero con condiciones.")
43+
# Salida esperada: Eres elegible para un préstamo, pero con condiciones.
44+
45+
# =============================================================================
46+
# EJEMPLO 3: Operador NOT
47+
# =============================================================================
48+
if not has_criminal_record:
49+
print("No tienes antecedentes penales.")
50+
# Salida esperada: No tienes antecedentes penales.
51+
52+
# =============================================================================
53+
# EJEMPLO 4: Combinando operadores
54+
# =============================================================================
55+
ingresos = 5000
56+
edad = 25
57+
58+
if (has_good_credit and ingresos > 3000) or edad < 30:
59+
print("Cumples con los requisitos para aplicar.")
60+
# Salida esperada: Cumples con los requisitos para aplicar.
61+
62+
# =============================================================================
63+
# EJERCICIOS PRÁCTICOS
64+
# =============================================================================
65+
# 1. Escribe un programa que pregunte si tienes licencia y si tienes seguro, y solo permita conducir si ambas son True
66+
# 2. Escribe un programa que pregunte si tienes pasaporte o visa, y permita viajar si al menos una es True
67+
# 3. Escribe un programa que niegue el acceso si la persona está en una lista negra (usa not)
68+
69+
# =============================================================================
70+
# CONCEPTOS IMPORTANTES
71+
# =============================================================================
72+
"""
73+
1. and solo es True si ambas condiciones son True
74+
2. or es True si al menos una condición es True
75+
3. not invierte el valor lógico
76+
4. Puedes combinar varios operadores en una sola expresión
77+
5. El orden de evaluación sigue las reglas de precedencia lógica
78+
"""
79+
80+
# =============================================================================
81+
# VARIACIONES Y EXPERIMENTOS
82+
# =============================================================================
83+
# Descomenta para experimentar:
84+
# tiene_licencia = True
85+
# tiene_seguro = False
86+
# if tiene_licencia and tiene_seguro:
87+
# print("Puedes conducir.")
88+
# else:
89+
# print("No puedes conducir.")

0 commit comments

Comments
 (0)