Desarrollo con Python
  • Conceptos básicos
    • 🐍Introducción a Python
      • 🐍Variables
      • 🐍Strings
      • 🐍Números
      • 🐍Comentarios
      • 🐍Funciones
      • 🐍Funciones Propias
      • 🐍Zen of Python
    • 💿Primer programa
  • Operadores en python
    • ❎Operadores
      • ❎Operadores Aritméticos
      • ❎Operadores de asignación
      • ❎Booleanos
      • ❎Operadores de comparación
      • ❎Operadores lógicos
      • ❎Operadores de identidad
      • ❎Operadores de pertenencia
  • Datos Complejos
    • ▶️Datos complejos
      • ▶️Listas
      • ▶️Tuplas
      • ▶️Diccionarios
      • ▶️Bytes y Bytearrays
      • ▶️Sets
      • ▶️NoneType
    • 💿Caso práctico: Agenda
  • Control de flujo
    • 🛑Estructuras de control de flujo
      • 🛑Sentencias if/elif/else
      • 🛑Sentencia for
      • 🛑Sentencia while
      • 🛑break/continue/pass
    • ⚠️Excepciones en Python3
    • 🎯Caso práctico: 4 in Row
  • Orientacion a objetos
    • 💾Scope y Namespaces
    • 💾Clases en Python 3
    • 💾Métodos y atributos
    • 💾Clases y Objetos
    • 💾Decorators
  • Trabajando con objetos
    • 🔢Trabajando con Objetos
      • 🔢Trabajando con Números
      • 🔢Trabajando con Strings
      • 🔢Trabajando con Listas
      • 🔢Trabajando con Tuplas
      • 🔢Trabajando con Sets
      • 🔢Trabajando con Diccionarios
  • Programación Modular
    • 🧩Programación modular
      • 🧩Paquetes
      • 🧩PIP y paquetes externos
      • 🧩Pandas
      • 🧩NumPy
      • 🧩Matplotlib
      • 📄Caso Práctico
  • Proyectos finales
    • 🐍Videojuego Snake
    • 📥Detección de Spam con Machine Learning
Con tecnología de GitBook
En esta página
  • 1. Sentencia if
  • 2. Expresiones y operadores con la sentencia if
  • 3. La cláusula else
  • 5. La cláusula elif
  • 6. Sentencia if en una sola línea
  • 7. Operador condicional
  1. Control de flujo
  2. Estructuras de control de flujo

Sentencias if/elif/else

1. Sentencia if

La sentencia de control de flujo if es probablemente una de las estructuras más importantes de cualquier lenguaje de programación, incluido Python.

Esta estructura nos permite implementar sentencias condicionales dentro de nuestro programa.

La sintaxis utilizada para definir la sentencia if es la siguiente:

if <expresión>:
    <sentencia(s)>

<expresión> es una expresión evaluada en un contexto booleano. El resultado de evaluar esta expresión debe ser True o False

<sentencia(s)> es el bloque de sentencias en Python que se ejecutará cuando el resultado de evaluar la expresión sea True, en caso contrario se omitirá.

num1 = 5
num2 = 10

# Esto es una expresión
num1 < num2
True

if num1 < num2: # Como num1 es menor a num2, nos imprime las sentencias
    print("sentencia1")
    print("sentencia2")
    print("sentencia3")
sentencia1
sentencia2
sentencia3

num1 = 15
num2 = 10

if num1 < num2: # Como num1 es mayor a num2, no nos imprime las sentencias
    print("sentencia1")
    print("sentencia2")
    print("sentencia3")

IMPORTANTE: Recuerda que en Python todo el código que sea local a una estructura, por ejemplo una función o una estructura de control como `if`, debe esta "indentado", es decir, respetar la sangría.

if num1 < num2: # Como no está indentado nos devuelve un error
print("sentencia1")
print("sentencia2")
print("sentencia3")
  Cell In[9], line 2
    print("sentencia1")
    ^
IndentationError: expected an indented block after 'if' statement on line 1

2. Expresiones y operadores con la sentencia if

Una de las cosas interesantes de esta sentencia de control de flujo es que podemos utilizar casi cualquier tipo de operador, tipo de dato y expresión siempre que el resultado sea un valor booleano (True o False)

lista = ["azul", "amarillo", "verde"]

if "azul" in lista: # Como azul está en lista, nos pinta las sentencias
    print("Sentencia 1")
    print("Sentencia 2")
Sentencia 1
Sentencia 2

tupla = (1, 2, 3, 4)

if 6 in tupla: # Como el 6 no se encuentra en tupla, no nos pinta las sentencias
    print("Sentencia 1")
    print("Sentencia 2")  

3. La cláusula else

En algunas ocasiones nos encontraremos con casos de uso en los que querremos una estructura condicional que ejecute unas sentencias en Python si la expresión es True pero además, que ejecute otras sentencias diferentes si la expresión es False. Para este tipo de casos se utiliza la cláusula else.

La sintaxis que debemos utilizar en Python 3 para definir la cláusula else dentro de una estructura if es la siguiente:

if <expresión>:
    <sentencia(s)>
else:
    <sentencia(s)>
num1 = 5
num2 = 10

if num1 < num2:
    print("El número 5 es menor que el número 10")
else:
    print("El número 10 es mayor que el número 5")
El número 5 es menor que el número 10

if num1 > num2:
    print("El número 5 es menor que el número 10")
else:
    print("El número 10 es mayor que el número 5")
El número 10 es mayor que el número 5

5. La cláusula elif

Otros de los casos de uso que nos encontraremos con frecuencia es la implementación de una estructura condicional que requiera múltiples evaluaciones de varias expresiones para tomar la decisión de qué código ejecutar. Para estos casos específicos podemos utilizar la cláusula elif.

La sintaxis que debemos utilizar en Python 3 para definir la cláusula elif dentro de una estructura if es la siguiente:

if <expresión>: # Si no se da esta claúsula salta a la siguiente
    <sentencia(s)>
elif <expresión>: # Si no se da esta claúsula salta a la siguiente
    <sentencia(s)>
elif <expresión>: # Si no se da esta claúsula salta a la siguiente
    <sentencia(s)
...
else: # Si no se da ninguna de las anteriores, hace esto
    <sentencia(s)>

Una cosa importante que debemos tener en cuenta es que podemos utilizar tantas cláusulas elif como consideremos oportunas.

nombres = ["Alex", "Sonia", "Juan", "Laura"]

if "Pedro" in nombres: # Cómo no se da esta claúsula salta a la siguiente
    print("Hola Pedro"
elif "Jorge" in nombres: # Cómo no se da esta claúsula salta a la siguiente
    print("Hola Jorge")
elif "Marta" in nombres: # Cómo no se da esta claúsula salta a la siguiente
    print("Hola Marta")
elif "Alex" in nombres: # Como este nombre está en la lista nos lo saca por pantalla
    print("Hola Alex")
else:
    print("El nombre no se encuentra en la lista")
Hola Alex

nombres = ["Maria", "Juan"]

if "Pedro" in nombres: # Cómo no se da esta claúsula salta a la siguiente
    print("Hola Pedro")
elif "Jorge" in nombres: # Cómo no se da esta claúsula salta a la siguiente
    print("Hola Jorge")
elif "Marta" in nombres: # Cómo no se da esta claúsula salta a la siguiente
    print("Hola Marta")
elif "Alex" in nombres: # Cómo no se da esta claúsula salta a la siguiente
    print("Hola Alex")
else: # Como no hay ninguno de estos nombres en la lista, nos devuelve esto
    print("El nombre no se encuentra en la lista")
El nombre no se encuentra en la lista

6. Sentencia if en una sola línea

Como curiosidad interesante, Python 3 nos permite utilizar una sintaxis específica para implementar sentencias if en una sola línea de código. Sin embargo, en general esta opción no es muy recomendable debido a que puede aumentar la complejidad en la lectura del código fuente.

num1 = 5
num2 = 10

if num1 < num2: print("El 5 es menor que el 10."); print("Obviamente.")
El 5 es menor que el 10.
Obviamente.

7. Operador condicional

Por último, Python soporta una construcción más relacionada con la sentencia if que puede resultarnos muy interesante para determinados casos de uso. A esta construcción se le denomina operador condicional.

La sintaxis que se utiliza para implementar el operador condicional en Python3 es la siguiente:

<expresión1> if <expresión_condicional> else <expresión2>

Este operador nos permite simplificar el código que utilizamos para determinadas tareas como, por ejemplo, asignarle un valor a una variable en función de una condición.

nombre = "Pedro"
nombre2 = "Alex"

edad = 18 if nombre == "Pedro" else 30
edad
18

tiempo = "lluvia"

# Como el tiempo no es sol, nos devuelve el mensaje: Vamos al cine
print("Vamos", "a la piscina" if tiempo == "sol" else "al cine")
Vamos al cine

AnteriorEstructuras de control de flujoSiguienteSentencia for

Última actualización hace 1 año

🛑
🛑
Page cover image