Flujo, Indentación y Sentencias Compuestas en Python


Un programa de computadora está constituido por una secuencia de instrucciones que ésta debe realizar para cumplir con su objetivo. El orden en que efectivamente se van ejecutando es lo que se denomina Flujo de un programa y, salvo contadas ocasiones, no siguen la linealidad que se observa en el código, sino que ese encadenamiento se ve alterado por las llamadas Estructuras de Control que le permiten tomar diferentes alternativas o repetir un conjunto de instrucciones.

El siguiente programa es un ejemplo del uso de estructuras lineales:


Los programas con flujo lineal están formados por Sentencias Simples que suelen tener una sintaxis sencilla y se escriben en una sola línea de programa.

Por otro lado, las Sentencias Compuestas plantean diferentes recorridos o flujos dentro de un programa, suelen ocupar varias líneas del programa, conteniendo bloques de código cuya ejecución condicionan o controlan de alguna manera. Pueden ser de dos tipos:

Ü  Estructuras condicionales

Ü  Estructuras iterativas o cíclicas

En esta clase nos vamos a ocupar solo de las primeras. Sin embargo, para poder analizarlas es preciso abordar antes el concepto de Indentación o Sangrado.

Indentación es un término común de uso en Informática, derivado de la palabra inglesa indentation. Se refiere a la acción de desplazar una o más líneas de código hacia la derecha del margen, de manera de lograr una mayor legibilidad de un programa.

En Python su uso es obligatorio al escribir sentencias compuestas, ya que permite definir el bloque de código que se halla subordinado a aquella, como en el siguiente ejemplo:


En general, suele haber varios bloques de código en un mismo programa, cada uno de ellos con diferentes niveles de subordinación y, por lo tanto, distinta indentación, como en la Figura 3.


En este caso particular, se observa que todo el bloque marcado
en verde depende de la línea class My Class, así como las líneas o bloques marcado en rojo están subordinados a sus líneas de código inmediatamente anteriores (def am_i_bigger_than…., etc.).


Comentarios