Principios para Codificar (usando Python)

Mas que un documento introductorio, este texto presenta un horizonte, un abre bocas para quién tiene despierto el interés en la programación de computadores, influído por la ruta que traza o requiere la plataforma OnMind.

Sobre qué trata la codificación

En términos simples, el computador sigue instrucciones codificadas por quién ejerce la función de codificar, y normalmente se espera que previo a la codificación se haya analizado bien lo que se requiere indicar.

Tales instrucciones se realizan frecuentemente en un lenguaje cercano al humano, encontrando código donde lo que se hace es mezclar palabras del lenguaje inglés con operadores matemáticos para algún cálculo. Cuando empiezas a iniciarte en la programación convencional de nuestro asunto, existe algo que se conoce como “algoritmos”, que se trata de usar un lenguaje más casual y expontáneo, semejante a una receta para indicar que debería hacer un programa, pero sólo sirve en el papel y el aprendizaje pues un programa jamás lo comprendería si no es un lenguaje establecido.

Los lenguajes que usamos en OnMind son principalmente Javascript y Kotlin (con apertura a otro lenguaje para algún proyecto que amerite otro enfoque), no obstante para un contexto académico en dónde te introduces en la programación es preciso mencionar a Python. Si comprendes la noción general de un “algoritmo” puedes pasar a codificar directamente con Python (como se verá avanzando el texto), o si te sientes con mayor capacidad pasa directo a los lenguajes usados por OnMind, por ejemplo, inicia con Javascript.

Nociones sobre algoritmos

Si bien se indicaba que los algoritmos se pueden expresar como una receta de modo casual o en lenguaje expontáneo, conviene que estén debidamente orientados al modo en que operan los lenguajes de programación convencionales. Cuando se usa algún léxico o convención se denomina pseudocódigo, si bien no es un código que interprete aún un computador. La función que cumple es dejar las bases sobre cómo impartir instrucciones a un computador.

Si tomas como analogía que quién ejerce la función de codificar es el jefe respecto al computador que ejecuta las ordenes tal como se indique, o si prefires la analogía de un capitan con un soldado obediente, entonces debes considerar que al aplicarse a esta herramienta al parecer no resulta muy hábil en comprensión aunque sí en cálculos, por lo que se requiere que aprendas a indicarle las cosas del modo correcto para obtener un resultado esperado.

Una manera de indicarle las cosas es establecerle las condiciones, también deberás especificarle cuando se trata de una operación repetitiva con una condición delimitada. Es así como obtenemos los conceptos de “condiciones” y “ciclos” respectivamente, mientras los cálculos de “operaciones” se expresan de una manera más natural (como en matemáticas y sus operadores). De este modo, para tu pseudocódigo debes considerar operaciones (que usarían lo que se conoce como “variables”), condiciones y ciclos (iteraciones delimitadas).

El lenguaje de programación Python es quizás el que más se acerca a un pseudocódigo, o dicho de otro modo, se siente más cercano a un lenguaje natural que otros lenguajes de programación, por lo que podría plantearse aprender directamente a codificar con Python para obtener un resultado concreto y sin necesidad de teoría de pseudocódigos.

Puedes comenzar con Python

Mencionamos el término de “variables” que corresponde al concepto de algún valor o información requerida para procesar algo (o si prefieres asocialo con el lenguaje de las matemáticas). Por ejemplo, si vas a preparar un alimento seguramente se debe determinar los gramos de algún ingrediente. Por otra parte, la lógica se organiza frecuentemente por medio de algo llamado “funciones” que son bloques definidos de pasos o instruciones para dan razón del funcionamiento de algo (o si prefieres asocialo con el lenguaje de las matemáticas).

Esta es simplemente una invitación a introducirte, a modo de autoaprendizaje, en un lenguaje que sirva de introducción y futuro puente a otros lenguajes. Si deseas profundizar puedes investigar material que responda a los siguientes conceptos o temario:

En resumen: Las variables son datos que se requieren y que generalmente contienen un valor. Las funciones son partes de la lógica que cumplen un objetivo y pueden retornar un resultado (pueden usar los demas conceptos: variables, condicionamientos, ciclos, excepciones). Los condicionales o validaciones se refieren a puntos de decisión en el programa basados en el cumplimiento o no de una condición (tales condiciones suelen expresarse con operadores de lógica y comparaciones de variables). Los ciclos pueden verse como iteraciones en las que se repite algo hasta que se lleque al cumplimiento de una condición (generalmente manejan una variable de incremento como contador de la iteración). Las excepciones ocurren con relación a algo inesperado de caracter técnico (distinto a los condicionamientos que sugieren reglas), es decir, corresponde al manejo de errores en la ejecución del programa.

En una etapa o plan siguiente, podría incorporarse algo denominado programación orientada a objetos que tiene su propia base de conceptos y abre un capítulo aparte para su comprensión, introduciendo el tema de “clases”. No obstante, es mas relevante comprender primero el concepto de “estructuras de datos” (u objetos como JSON) y practicar la programación procedimental o funcional que se está introduciendo.

Los anteriores conceptos se aplican a un programa para computadora que consiste en una serie de instrucciones, que se ejecutan en principio una a la vez de arriba hacia abajo. Veamos a continuación el primer ejemplo para aterrizar un poco lo expresado.

Ejemplo esencial

print("Hi there!")

Este programa en Python imprime un saludo en la pantalla. Ten presente que cada instrucción de lógica en Python correspondería a una línea de código.

Si lo quieres probar lo que hace y tienes un sistema operativo Linux o macOS seguramente se encuentra instalado, más si usas Windows debes descargarlo del sitio oficial e instalarlo ejecutando el archivo respectivo.
Una vez instalado, puedes abrir una terminal de línea de comandos, ejecutar el comando python (tal y como se observa) y luego de que inice copias y pegas la línea de código print("Hi there!"). Para salir puedes presionar las teclas CTRL+D.

Variables

Recordando que la variable es como un dato a tener en cuenta (en memoria), se puede expresar una variable simplemente asignándola con el operador igual (=). Cada vez que se mencione o use posteriormente la variable, esta debe aparecer con el mismo nombre original (respetando mayúsculas y minúsculas).

Ejemplo:

variable = "Ana"
i = 0
print(variable)

print es una sentencia que viene en el lenguaje para mostrar algo en pantalla (en este caso imprime el valor de la variable)

En programación de computadoras las variables tiene un tipo de dato que indica la naturaleza del contenido, por ejemplo, si una variable contiene un texto (string) o si es un número entero (integer) o flotante (float), incluso si se trata de un valor verdadero o falso (boolean) o una lista (array).

Definición de funciones

Las funciones se relacionan con lógica en bloques bien definidos según se organicen, y para el caso de Python se antepone def. Ten presente que esa línea en partícular debe terminar con dos puntos (:), veamos a continuación.

def myfunction():
  print("Hi there!")

myfunction()

Veamos otro ejemplo.

def myfunction2(name):
  return name

En este caso se usa return para devolver el valor contenido en la variable.

Condicional if / else (elif)

Las condiciones permiten determinar los puntos de validación en la lógica que se plantee. Por ejemplo, imagina que vas a comprar una bebida para alguien que te la encargó y llevas planteados unas posibles escenarios en caso de que no se encuentre la bebida originalmente solicitada. Ten presente que esas líneas en partícular en Python deben terminar con dos puntos (:), veamos a continuación.

if i == 1:
  print("coffee")
else:
  print("tea")

if da la apertura a plantear una condición inicial, mientras else correspondería a lo que ocurriría cuando no se cumple la condición. Además se puede usar elif (que sería como abreviar else if) para evaluar otras condiciones determinadas, como en el siguiente ejemplo.

if i == 1:
  print("coffee")
elif i == 2:
  print("tea")
else:
  print("aha")

El Ciclo For

Los ciclos se refieren a instrucciones que se repiten o en donde se da lugar a iteraciones. Ten presente que la línea del for debe terminar con dos puntos (:), veamos a continuación.

names = ["Ana", "Alex", "Janeth"]
for x in names:
  print(x)
  if x == "Alex":
    break

Nótese que la variable names es una lista de valores de texto (también conocida con el nombre de arreglos) cuya convención usa corchetes [] separando cada valor por una coma. Cuando se usa break se interrumpe el ciclo, dado que está bajo una condición se imprimirían los nombres hasta que se de lugar a la condición (por tanto no se imprimiría Janeth).

El Ciclo While

Otra manera de plantear un ciclo de iteraciones delimitándolo con una condición es usando while, de modo que se ejecuta el código mientras cumpla la condición. Suele requerir de inicialización de una variable, la condición de terminación del ciclo y un incremento. Ten presente que esa línea del while debe terminar con dos puntos (:), veamos a continuación.

i = 0
while i < 10:
  i += 1
  print(i)

Excepciones

Las excepciones son algo más técnico que en realidad no aplicaría a un pseudocódigo sino al lenguaje de programación específico (en este caso, Python). Se originan cuando se interrumpe la lógica esperada debido a un error en medio de la ejecución del programa de modo que podríamos gestionarlas, en otras palabras, son útiles para manejo de errores de caracter técnico.

try:
  print(n)
except:
  print("error")
finally:
  print("end")

try: indica que se inicia un bloque de código controlado y que en caso de una excepción se pasa al bloque correspondiente a except:, Por último siempre se ejecutaría lo que se indique bajo finally: (si se indica, puesto que es opcional).

Prueba Python (Instalación)

En ciertos sistemas como macOS y Linux encuentras este lenguaje instalado. Veremos a continuación la instalación de Python 3.7+ bajo Windows. Para ello, nos dirigimos al sitio y descargamos el instalador de la versión 3, generalmente a 64 bits. Es conveniente revisar si tienes instalada la versión de Python 2.7 y desinstalarla primero del sistema Windows.

Una vez inicias el instalador y sigues paso a paso un proceso corto, debe quedarte Python en una ruta como: C:\Users\myuser\AppData\Local\Programs\Python\Python39\

Puedes abrir una terminal y digitar el comando py para probar un código esencial como: print("Hi there!")
Para salir de ese interprete interactivo debes digitar las teclas: CTRL + Z y ENTER

Puedes verificar la version instalada del lenguaje y del gestor de paquetes del lenguaje llamado pip ejecutando:

python --version
pip --version

Una breve comparación con Javascript

Ahora veamos un sencillo escenario de comparación que nos da una referencia ágil de un lenguaje como Javascript.

Concepto Python Javascript
Variable variable = “Ana” let variable = ‘Ana’
Función def myfunction(name): function myfunction(name) { }
Condición if i == 1: if (i == 1) { }
Ciclo For for x in names: for (x in names) { }
Ciclo While while i < 10: for (let i = 0; i < 10; i++) { }
Excepción try: … except: try { } catch(e) { }

Como se puede apreciar, la forma de escribir entre un lenguaje y otro es distinta, por ejemplo, en Javascript se hace uso de llaves {}. Continuar con Javascript