Condicionales
Los condicionales permiten que un programa tome decisiones: ejecutar un bloque de código u otro dependiendo de si una condición es verdadera o falsa.
Condiciones
Una condición es una expresión que Python evalúa como True o False. Para formarlas usamos operadores de comparación:
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
== | Igual a | 5 == 5 | True |
!= | Diferente de | 5 != 3 | True |
> | Mayor que | 5 > 3 | True |
< | Menor que | 5 < 3 | False |
>= | Mayor o igual | 5 >= 5 | True |
<= | Menor o igual | 5 <= 3 | False |
Estructura if / elif / else
La palabra clave if evalúa una condición. Si es verdadera, ejecuta el bloque indentado debajo. elif agrega condiciones adicionales. else captura todos los casos que no cumplieron ninguna condición anterior.
if condición1:
# se ejecuta si condición1 es True
elif condición2:
# se ejecuta si condición2 es True
else:
# se ejecuta si ninguna condición fue True
Ejemplo Clasificar la edad de una persona
edad = 18
if edad < 18:
print("Eres menor de edad")
elif edad == 18:
print("Tienes exactamente 18 años")
else:
print("Eres mayor de edad")
Con edad = 18 se imprime Tienes exactamente 18 años. Python evalúa las condiciones en orden y ejecuta solo el primer bloque que sea verdadero.
En Python el bloque de código de cada rama se delimita con sangría (indentación), no con llaves. El estándar es 4 espacios. Si la indentación es incorrecta, Python lanza un error.
Operadores lógicos
Para combinar varias condiciones en una sola expresión usamos los operadores lógicos:
and— verdadero solo si ambas condiciones son verdaderas.or— verdadero si al menos una condición es verdadera.not— invierte el valor: convierteTrueenFalsey viceversa.
edad = 20
if edad < 18:
print("Menor de edad")
elif edad >= 18 and edad < 65:
print("Adulto") # se imprime esto
else:
print("Adulto mayor")
Ejemplo Validar contraseña con and y not
password = input("Ingresa tu contraseña: ")
if len(password) >= 8 and not password == "12345678":
print("Contraseña válida")
else:
print("Contraseña demasiado débil o corta")
Aplicación: función de activación
En aprendizaje automático, el perceptrón calcula una combinación lineal de sus entradas y luego le aplica una función de activación para decidir si "dispara" o no.
La función escalonada (step function) es la más simple: devuelve 1 si la salida supera un umbral, y 0 en caso contrario.
x1 = float(input("Calificación examen 1: "))
x2 = float(input("Calificación examen 2: "))
w1 = 0.5
w2 = 0.7
b = -1.0
salida = (x1 * w1) + (x2 * w2) + b
if salida >= 0:
print("El alumno aprueba (salida = 1)")
else:
print("El alumno reprueba (salida = 0)")
Más detalle ¿Por qué no se usa la función escalonada en redes modernas?
La función escalonada no es diferenciable en \(z = 0\), lo que impide calcular gradientes y por ende entrenar la red mediante gradiente descendente. Las redes modernas usan funciones como ReLU \(\max(0, z)\) o sigmoide \(\frac{1}{1+e^{-z}}\), que son diferenciables casi en todos sus puntos.