Apuntes sobre Python

La indentación no es estilo: es sintaxis.

Condicionales: if, elif y else

Hasta ahora el código se ejecuta línea a línea, de arriba abajo, sin tomar decisiones. Los condicionales permiten que el programa ejecute unas instrucciones u otras dependiendo de si una condición es verdadera o falsa.

El if básico

La estructura más simple: si la condición es True, ejecuta el bloque. Si es False, lo salta.

>>> edad = 20
>>> if edad >= 18:
...     print("eres mayor de edad")
eres mayor de edad

Dos cosas importantes de la sintaxis:

  • La línea del if termina con dos puntos :.
  • El bloque que se ejecuta va indentado con 4 espacios. Python usa la indentación para delimitar bloques, no llaves como PHP o JavaScript. Si la indentación es incorrecta, el programa falla.
>>> if edad >= 18:
... print("error")     # falta indentación: IndentationError

if / else

El bloque else se ejecuta cuando la condición del if es False:

>>> edad = 15
>>> if edad >= 18:
...     print("puedes entrar")
... else:
...     print("acceso denegado")
acceso denegado

Solo se ejecuta uno de los dos bloques, nunca los dos.

if / elif / else

Cuando hay más de dos posibilidades se usan uno o varios elif (contracción de else if). Python los evalúa en orden y ejecuta el primer bloque cuya condición sea verdadera:

>>> nota = 7

>>> if nota >= 9:
...     print("sobresaliente")
... elif nota >= 7:
...     print("notable")
... elif nota >= 5:
...     print("aprobado")
... else:
...     print("suspenso")
notable

El else al final es opcional, pero si está presente actúa como red de seguridad: se ejecuta si ninguna condición anterior fue verdadera.

Condiciones compuestas

Puedes usar todo lo que vimos en la lección anterior: and, or, not, in, encadenamiento...

>>> usuario = "cristina"
>>> clave_correcta = True

>>> if usuario == "cristina" and clave_correcta:
...     print("bienvenida,", usuario)
bienvenida, cristina

>>> idiomas = ["python", "php", "javascript"]
>>> if "python" in idiomas:
...     print("python encontrado")
python encontrado

>>> edad = 25
>>> if 18 <= edad <= 65:
...     print("edad laboral")
edad laboral

Condicionales anidados

Puedes poner un if dentro de otro. Cada nivel añade 4 espacios de indentación:

>>> tiene_cuenta = True
>>> saldo = 150

>>> if tiene_cuenta:
...     if saldo >= 100:
...         print("puedes realizar la transferencia")
...     else:
...         print("saldo insuficiente")
... else:
...     print("necesitas una cuenta primero")
puedes realizar la transferencia

Nota: Los anidamientos profundos dificultan la lectura. Si te encuentras con tres o cuatro niveles, suele ser señal de que la lógica se puede simplificar con and/or o reorganizando las condiciones.

if en una línea (operador ternario)

Python permite escribir un if/else simple en una sola línea. La sintaxis es valor_si_true if condición else valor_si_false:

>>> edad = 20
>>> estado = "mayor de edad" if edad >= 18 else "menor de edad"
>>> print(estado)
mayor de edad

Es útil para asignaciones cortas, pero no abuses: en cuanto la condición o los valores se complican, el if en varias líneas es más claro.

En la próxima lección: bucles: for, while, break y continue para repetir bloques de código.

TOP