2.1 Fundamentos de programación
Conceptos básicos para comenzar a escribir código en Python.
Para que los códigos desarrollados en este manual sean comprendidos, es necesario que el usuario se familiarice con conceptos y términos básicos de la programación con Python, expuestos a continuación.
Tipos de datos
Números
Integers: los números enteros no tienen decimales, pero sí pueden contener signo y estar expresados en alguna base distinta de la usual (base 10).
Floating point: los números en punto flotante tienen parte decimal.
Boolean: funcionan como valores lógicos y sólo pueden tomar el valor de verdadero o falso.
Cadenas de texto
Un valor de texto es un string.
Para escribir una cadena de texto en Python basta con rodear los caracteres con comillas simples o doble.
Listas
Las listas son tipos de datos que permiten almacenar múltiples elementos en una sola variable. Los elementos están ordenados y se pueden cambiar después de la creación de la lista. Es decir, las listas son mutables.
Cada elemento tiene un índice, el primer elemento tiene índice [0], el segundo elemento tiene índice [1], y así sucesivamente.
Tuplas
El concepto de tupla es muy similar al de lista. Aunque hay algunas diferencias menores, lo fundamental es que, mientras una lista es mutable y se puede modificar, una tupla no admite cambios y por lo tanto, es inmutable.
Diccionarios
Se puede trasladar el concepto de diccionario de la vida real al de diccionario en Python. Al fin y al cabo un diccionario es un objeto que contiene palabras, y cada palabra tiene asociado un significado. Haciendo el paralelismo, diríamos que en Python un diccionario es también un objeto indexado por claves (las palabras) que tienen asociados unos valores (los significados).
Variables
Una variable es un nombre que se le asigna a un valor determinado. Dicha variable puede contener cualquier tipo de valor, como números y cadenas de texto.
Las convenciones de nomenclatura de variables en Python son las siguientes:
No puede comenzar con un número.
Debe ser una sola palabra.
Debe constar únicamente de letras y símbolos.
Las variables en Python que comienzan con _ (guión bajo) se consideran "inútiles".
No pueden ser una palabra reservada del lenguaje "keywords".
La Figura 1 resume palabras reservadas de Python.
La Tabla 1 lista ejemplos de variables con nombres inválidos.
Tabla 1. Ejemplos de nombramiento de variables
a
3
Empieza por un dígito
a3
3a
Empieza por un dígito
a_b_c___95
another-name
Contiene un carácter no permitido
_abc
with
Es una palabra reservada del lenguaje
_3a
3_a
Empieza por un dígito
Nota: Se recomienda utilizar nombres que describan el contenido de la variable, evitando nombres demasiado largos.
Operadores
Existen varios operadores que pueden ser utilizados de manera inmediata en Python. La Tabla 2 lista el uso de operadores aritméticos comunes.
Tabla 2. Operadores aritméticos
+
Realiza adición entre los operandos
12 +3 = 15
-
Realiza sustracción entre los operandos
12 -3 = 9
*
Realiza multiplicación entre los operandos
12 * 3= 36
/
Realiza división entre los operandos
12/3 = 4
%
Realiza división entre los operandos
16 % 3 = 1
**
Realiza la potencia de los operandos
12** 3 = 1728
//
Realiza la división con resultado de número entero
18 // 5 = 3
La Tabla 3 lista los operadores de comparación y la tabla Tabla 4 los operadores lógicos. En la Figura 7 se encuentran los operadores de pertenencia y en la Figura 8 los de identidad.
Tabla 3. Operadores de comparación
==
¿son iguales a y b?
5 == 3
False
!=
¿son distintos a y b?
5 != 3
True
<
¿es a menor que b?
5 < 3
False
>
¿es a mayor que b?
5 > 3
True
<=
¿es a menor o igual que b?
5 <= 5
True
>=
¿es a mayor o igual que b?
5 >= 3
True
Tabla 4. Operadores lógicos
or
OR. Solo se evalúa el segundo operando si el primero es falso
a or b
Si a es falso devuelve b
Si no devuelve a
and
AND. Solo se evalúa el segundo operando si el primero es verdadero
a and b
Si a es falso devuelve a
Si no devuelve b
not
Tiene menos prioridad que otros operadores
not a
Si a es falso devuelve True
Si no devuelve False
Cuando realizamos operaciones con valores lógicos es importante tomar en cuenta las tablas de verdad.
Tabla 5. Operadores de pertenencia
in
Devuelve True si el valor se encuentra en una secuencia; false en caso contrario.
not in
Devuelve True si el valor no se encuentra en una secuencia, False en caso contrario.
Tabla 6. Operadores de identidad
is
Devuelve True si ambos operandos hacen referencia al mismo objeto; false en caso contrario.
is not
Devuleve True si ambos operandos no hacen referencia al mismo objeto; False en caso contrario.
Control de flujo y ciclos
Todo programa informático está formado por instrucciones que se ejecutan en forma secuencial de «arriba» a «abajo». Este orden constituye el llamado flujo del programa. Es posible modificar este flujo secuencial para que tome bifurcaciones o repita ciertas instrucciones. Las sentencias que nos permiten hacer estas modificaciones se engloban en el control de flujo.
Enunciado If
En su escritura debemos añadir una expresión de comparación terminando con dos puntos al final de la línea.
En el caso anterior se puede ver claramente que la condición se cumple y por tanto se ejecuta la instrucción que tenemos dentro del cuerpo de la condición. Pero podría no ser así. Para controlar ese caso existe la sentencia else. Veamos el siguiente ejemplo:
Enunciado Else
Se pueden tener ciclos anidados:
Python ofrece una mejora en la escritura de condiciones anidadas cuando aparecen consecutivamente un else y un if. Podemos sustituirlos por la sentencia elif.
A continuación se muestra el ejemplo anterior, pero con el uso del enunciado elif.
Enunciado While
El primer mecanismo que existe en Python para repetir instrucciones es usar la sentencia while. La semántica tras esta sentencia es: «Mientras se cumpla la condición, haz algo».
Python ofrece la posibilidad de romper o finalizar un bucle antes de que se cumpla con el enunciado break.
Enunciado For
Python permite recorrer aquellos tipos de datos que sean iterables. Ejemplos de tipos y estructuras de datos que permiten ser iteradas (recorridas) son: cadenas de texto, listas o diccionarios.
La sentencia for permite realizar esta acción:
En cada iteración, cada uno de los elementos de la variable que especifiquemos se va recorriendo. En este caso concreto "letra" va tomando cada una de las letras que existen en la variable "palabra", porque una cadena de texto está formada por elementos que son caracteres.
Como ocurría en el caso de los ciclos while, el enunciado break también se puede usar para detener las iteraciones durante un ciclo for.
Funciones
El concepto de función es básico en prácticamente cualquier lenguaje de programación. Se trata de una estructura que nos permite agrupar código y tiene dos objetivos:
No repetir fragmentos de código durante nuestro programa.
Reutilizar el código para distintas situaciones.
Una función viene definida por su nombre, sus parámetros y su valor de retorno (Figura 2).
Para definir una función utilizamos la palabra reservada def seguida del nombre de la función. A continuación, aparecerán 0 o más parámetros separados por comas (entre paréntesis), finalizando la línea con dos puntos. En la siguiente línea empezaría el cuerpo de la función que puede contener una o más sentencias, incluyendo una sentencia de retorno con el resultado mediante el enunciado return.
Las funciones pueden retornar (o «devolver») un valor.
Los parámetros permiten variar los datos que consume una función para obtener distintos resultados. Vamos a empezar a crear funciones que reciben parámetros. En este caso escribiremos una función que recibe un valor numérico y devuelve su raíz cuadrada.
Librerías
Las librerías son un conjunto de funcionalidades que permiten al usuario llevar a cabo acciones específicas que no están en Python en primera instancia. Para poder hacer uso de las librerías necesitamos importarlas. Existe una gran variedad de librerías, cada una centrada en un campo de aplicación en específico (Figura 3).
Para saber más sobre los usos de una librería podemos leer en su documentación. A continuación, un ejemplo de cómo instalar librerías y su respectivo uso dentro del código. Se muestra cómo instalar e importar la librería Matplotlib que se utiliza principalmente para la visualización de datos, entre otras aplicaciones:
Para saber más:
Python, Beginner´s Guide, Non Programmers. https://wiki.python.org/moin/BeginnersGuide/NonProgrammers Fecha de acceso: Diciembre de 2023.
PY4E - Python for Everybody. https://www.py4e.com/book, https://www.py4e.com/lessons, https://online.umich.edu/series/python-for-everybody/ Fecha de acceso: Diciembre de 2023.
Matemáticas básicas para problemas químicos a través de Python, Sim-FQ. https://www.sim-fq.com/python-en-qu%C3%ADmica Fecha de acceso: Mayo de 2024.
Last updated