Indicación metodológica de lectura fundamental para el estudiante
Antes de presionar una sola tecla o abrir su Bloc de Notas, lea este capítulo por completo. Si en los capítulos anteriores aprendimos a tomar una decisión (si esto pasa, haz esto), hoy aprenderemos a construir intersecciones. La programación profesional no se basa en una sola condición, sino en la capacidad de evaluar varios factores al mismo tiempo. Aquí la lógica se vuelve más abstracta y el orden espacial de su código es determinante. Mantenga la configuración exhaustiva de su lector de pantalla; la paciencia será su mayor aliada.
Introducción
Hasta ahora, nuestras decisiones han sido sencillas: "Si es mayor de edad, pasa; si no, se queda fuera". Pero, ¿qué pasa si queremos que un programa sea más inteligente? Por ejemplo: "Si el usuario es mayor de edad Y además tiene una entrada válida, puede pasar". O quizás: "Si el usuario es administrador O es un invitado VIP, puede acceder al sistema".
En este capítulo, aprenderemos a combinar condiciones utilizando operadores lógicos (AND, OR, NOT). También exploraremos la anidación, que consiste en meter un "if" dentro de otro "if", creando una estructura de decisiones mucho más profunda y profesional. Además, incluiremos una sección de vocabulario técnico obligatorio y un desafío de lógica mental diseñado específicamente para nuestra realidad de accesibilidad.
Objetivos del Capítulo
Primero: Integrar operadores lógicos (AND, OR, NOT) para construir condiciones compuestas.
Segundo: Comprender y aplicar la anidación de estructuras condicionales (if dentro de if).
Tercero: Desarrollar un vocabulario técnico preciso para mejorar la comprensión de la documentación.
Cuarto: Superar el Desafío del Laberinto Mental, un ejercicio diseñado para ejercitar su lógica secuencial y espacial.
Quinto: Mantener el rigor en el flujo de trabajo: edición en Bloc de Notas, cambio de extensión y ejecución en CMD.
Explicaciones Detalladas
Los Operadores Lógicos: Combinando realidades
A veces, una sola condición no es suficiente. Python nos permite unir varias comparaciones usando tres palabras clave:
AND (Y): Exige que TODAS las condiciones sean verdaderas al mismo tiempo. Si una sola falla, el resultado es falso.
Ejemplo: if edad >= 18 and entrada == "valida":
OR (O): Exige que al menos UNA de las condiciones sea verdadera. Si alguna se cumple, el resultado es positivo.
Ejemplo: if usuario == "admin" or usuario == "vip":
NOT (NO): Invierte el valor de una condición. Convierte lo verdadero en falso y viceversa.
La Anidación: El arte de las carpetas lógicas
La anidación ocurre cuando usted coloca un bloque "if" completo dentro de otro bloque "if". Esto crea una jerarquía de decisiones donde el segundo nivel depende obligatoriamente de que el primero se haya cumplido.
Regla de oro: Cada vez que usted abre un nuevo "if" dentro de otro, debe aplicar una sangría adicional. Si el primer "if" tiene una tabulación, el "if" de adentro debe tener DOS tabuladores.
Vocabulario Técnico de Python
Es obligatorio que comprenda estos términos. Investigue y defina en su cuaderno de respuestas qué significan en programación: 1. Intérprete, 2. Sintaxis, 3. Algoritmo, 4. Indentación, 5. Booleano, 6. Operador, 7. Condicional, 8. Bucle, 9. Casting, 10. Variable.
Desafío Mental: El Laberinto de las Decisiones (Accesible)
Instrucciones del juego:
1. Cree un nuevo archivo en su carpeta Capitulo 6 llamado Laberinto_Mental.txt.
2. Usted es un explorador en una cueva oscura. Yo le daré el inicio y usted debe completar el camino lógica y coherentemente usando texto plano.
3. El objetivo es que usted diseñe las decisiones. No busque soluciones en internet; el valor del juego reside en el esfuerzo de su propia lógica.
4. No se frustre si no sale a la primera. Si se siente perdido, descanse y retome el ejercicio más tarde.
Sistema de Puntuación:
* Ganará más puntos entre más compleja sea la solución que diseñe (más niveles de decisiones).
* Si su solución es sencilla pero brillante, clara y diferente, ganará puntos por capacidad de asimilación y criterio personal.
* Entre más utilice su criterio y capacidad para este juego, más desarrollará las habilidades que un programador necesita para resolver problemas reales.
El inicio del Laberinto:
Punto de partida: Está en la entrada de la cueva. Hay dos caminos: Izquierda o Derecha.
* Si elige Izquierda: Encuentra un río. ¿Cruza nadando o busca un puente?
* Si elige Derecha: Encuentra una puerta cerrada. ¿Busca una llave o intenta derribarla?
¡Continúe la historia usando la lógica: "Si sucede esto, entonces hago aquello"!
Ejemplo Práctico de Seguridad (Nivel Inicial)
Antes de ir a los ejercicios complejos, probemos este ejemplo sencillo. Este código valida si una persona es mayor de edad Y si además tiene permiso.
Paso Uno: Digite este código:
print("Validación de seguridad inicial")
edad = int(input("Ingrese su edad: "))
tiene_permiso = input("¿Tiene permiso? (si/no): ")
if edad >= 18 and tiene_permiso == "si":
print("Acceso permitido.")
else:
print("Acceso denegado.")
Paso Dos: Guárdelo como inicio.py y ejecútelo. Note cómo el "and" nos obliga a cumplir ambas condiciones.
Ejemplo Práctico Guiado: El Sistema de Seguridad de Doble Factor
Ahora, un ejemplo anidado:
Paso Uno: Digite el siguiente código:
print("Sistema de seguridad avanzado")
usuario = input("Ingrese usuario: ")
clave = input("Ingrese contraseña: ")
if usuario == "diego":
if clave == "python2026":
print("Acceso total al sistema.")
else:
print("Usuario correcto pero contraseña fallida.")
else:
print("Usuario no reconocido.")
Paso Dos: Verificación de Sangrías. La línea del segundo "if" debe tener DOS tabuladores. El "print" de "Acceso total" debe tener TRES tabuladores.
Paso Tres: Guárdelo como seguridad.py y ejecútelo en CMD. Pruebe todas las combinaciones de error.
Ejercicios de Refuerzo de Lógica: Algoritmos de Ramificación
Cree el archivo Algoritmos_Capitulo_6.txt y desarrolle:
Ejercicio 1: Un sistema que pregunta si es fin de semana y si está cansado. Si es fin de semana Y está cansado, imprimir "Dormir todo el día". Si es fin de semana pero NO está cansado, imprimir "Ir a pasear". Si es día de semana, imprimir "Trabajar".
Ejercicio 2: Evaluar si un estudiante tiene una nota mayor a 70 Y además una asistencia mayor al 80%. Si cumple ambas, "Aprobado". Si no, "Reprobado".
Ejercicios Prácticos de Programación en Python
Ejercicio 1: Acceso a la bóveda.
El programa pide una clave numérica y un código de seguridad. Solo si la clave es 1234 Y el código es "secreto", imprime "Bóveda abierta". Use int() para la clave.
Ejercicio 2: El restaurante.
Pregunte: "¿pizza o hamburguesa?". Si elige pizza, pregunte: "¿pequeña o grande?". Si elige hamburguesa, pregunte: "¿con queso o sin queso?". Use if anidados.
Ejercicio 3: El validador de rangos.
Pregunte un número. Si el número está entre 0 y 10, imprima "Bajo". Si está entre 11 y 20, imprima "Medio". Si es mayor a 20, imprima "Alto". Use operadores lógicos.
Prácticas con tu Lector de Pantalla y CMD
Abra su archivo Tarea_Seis.txt en su carpeta Capitulo 6. Responda:
1. ¿Cómo suena la diferencia entre una sangría de un tabulador y una de dos?
2. ¿Por qué el operador AND es más estricto que el operador OR?
3. Si tiene 3 niveles de anidación, ¿cuántos tabuladores lleva la línea más interna?
4. ¿Qué sucede si escribe un if dentro de otro pero olvida aumentar la sangría?
5. ¿Es posible combinar AND y OR en una misma línea?
6. En la consola CMD, ¿cómo utiliza la tecla Flecha Arriba para corregir un programa que dio error en la lógica de su "if"?
7. Al usar el lector de pantalla para revisar el código, ¿qué comando específico usa para leer el "final de línea" y asegurarse de que no haya espacios en blanco innecesarios tras los dos puntos?
8. ¿Para qué sirve el comando "dir" antes de ejecutar su archivo .py, y cómo ayuda a confirmar que el archivo existe en la carpeta correcta?
9. ¿Cómo usa el lector de pantalla para deletrear la palabra "and" o "or" y verificar que no se haya escrito mal?
10. ¿Por qué es recomendable limpiar la consola con "cls" cada vez que prueba una nueva combinación de un programa anidado?
Información Institucional sobre la Evaluación
Usted está aprendiendo a estructurar el pensamiento lógico. No se frustre si su primer código con anidación falla; la sangría es un arte que se perfecciona con el oído. Si el código no funciona, verifique la jerarquía de sus tabulaciones.
Organice sus archivos en la carpeta Raíz: Bloque Uno, y dentro la carpeta Capitulo 6. Guarde todo ahí. Usted es el responsable de su orden y su progreso. Nos vemos el domingo.
Profesor: Diego R. Solano C.