Uso del módulo sys
en Python
Para que nuestro programa pueda interactuar con el sistema operativo y el entorno de ejecución, Python nos proporciona un módulo llamado sys
. Este módulo nos permite acceder a variables y funciones específicas del sistema, así como a la configuración y parámetros de ejecución de nuestro programa.
Documentación en línea
Puedes consultar la documentación oficial de Python para obtener información sobre el módulo y sus funciones disponibles aquí.
Importación del módulo sys
Este módulo se encuentra disponible en la biblioteca estándar de Python, lo que significa que está preinstalado en nuestro sistema y listo para ser utilizado. Está ubicado en un archivo llamado sys.py en nuestro sistema, y para acceder a sus funciones debemos importarlo en nuestro programa.
Por lo tanto, para utilizar las funciones del módulo sys
, primero debemos importarlo en nuestro programa. La forma más común de hacerlo es mediante la instrucción import sys
, que nos permite acceder a todas las funciones y características del módulo.
O bien, si solo necesitamos una función específica, podemos importarla directamente con la instrucción from sys import argv
:
O bien importar varias funciones específicas del módulo sys
:
¡Para recordar!
Puedes repasar los conceptos de importación de módulos en Python en nuestro material Importación de módulos en Python.
Parámetros y funciones específicas del sistema
Python incorpora una robusta biblioteca para interactuar con el sistema operativo y el entorno de ejecución, lo que nos permite acceder a información relevante y realizar operaciones específicas.
Recordemos el siguiente ejemplo:
numero1 = input("Dame un número: ") # El usuario ingresa el número 5
numero2 = input("Dame otro número: ") # El usuario ingresa el número 10
print(f"La suma de los números es {int(numero1) + int(numero2)}") # Imprime La suma de los números es 15
Puedes ejecutar tu programa así desde la terminal:
python mi_programa.py 5 10 # Imprime La suma de los números es 15
En ambos casos, la salida en pantalla será la misma, pero la manera de ingresar los datos es diferente. En el primer caso, el usuario debe ingresar los datos durante la ejecución del programa, mientras que en el segundo caso, los datos se pasan directamente al programa al momento de ejecutarlo.
¿Cómo es que el programa puede capturar estos datos? La respuesta está en el módulo sys
de Python, que nos permite acceder a los argumentos de línea de comandos que se pasan al programa al momento de ejecutarlo:
Accediendo a los argumentos de línea de comandos con sys.argv[]
El módulo sys
nos proporciona una lista llamada argv
que contiene todos los argumentos de línea de comandos pasados al programa. La lista argv
es una lista de cadenas de texto que contiene los argumentos pasados al programa, incluyendo el nombre del script que se está ejecutando.
Recordemos que el contenido dentro de los corchetes ([]) se conoce como notación de índice (index notation en inglés). Esta notación es fundamental para acceder a elementos en secuencias como listas, tuplas y cadenas de texto. Puedes repasar este concepto haciendo clic aquí.
Este módulo proporciona funciones para calcular estadísticas matemáticas de datos numéricos de tipo Real.
No pretende ser competidor o sustituto de bibliotecas de terceros como _NumPy_ o _SciPy_, ni de paquetes completos de software propietario para estadistas profesionales como _Minitab_, _SAS_ o _Matlab_. Este módulo se ubica a nivel de calculadoras científicas y gráficas.
A menos que se indique explícitamente lo contrario, las funciones de este módulo manejan objetos `int`, `float`, `Decimal` y `Fraction`. No se garantiza un correcto funcionamiento con otros tipos (numéricos o no).
!!! important "¡Para recordar!"
El comportamiento de estas funciones con colecciones mixtas que contengan objetos de diferente tipo no está definido y depende de la implementación. Si tus datos de entrada consisten en una mezcla de varios tipos, puedes usar map() para asegurarte de que el resultado sea consistente, por ejemplo: map(float, input_data).
## Documentación en línea
Puedes consultar la documentación oficial de Python para obtener información sobre los diferentes módulos existentes, siempre y cuado estos estén validados por la comunidad de desarrolladores oficiales del lenguaje [aquí](docs.python.org/3/library/sys.html){target="_blank"}.
## Importación del módulo `sys`
Este módulo se encuentra disponible en la biblioteca estándar de Python, lo que significa que está preinstalado en nuestro sistema y listo para ser utilizado. Está ubicado en un archivo llamado _sys.py_ en nuestro sistema, y para acceder a sus funciones debemos importarlo en nuestro programa.
Por lo tanto, para utilizar las funciones del módulo `sys`, primero debemos importarlo en nuestro programa. La forma más común de hacerlo es mediante la instrucción `import sys`, que nos permite acceder a todas las funciones y características del módulo.
``` py title="Importando el módulo sys"
import sys
O bien, si solo necesitamos una función específica, podemos importarla directamente con la instrucción from sys import median
:
O bien importar varias funciones específicas del módulo sys
:
¡Para recordar!
Puedes repasar los conceptos de importación de módulos en Python en nuestro material Importación de módulos en Python.
Funciones estadísticas
Python incorpora una robusta biblioteca de estadísticas que facilita el análisis de datos mediante funciones especializadas para calcular medidas de tendencia central (media, mediana, moda) y otros indicadores estadísticos relevantes para cualquier conjunto de datos.
mean(seq) (media o promedio)
En la documentación oficial de Python, esta función se presenta formalmente como sys.mean(seq)
, donde seq
representa una secuencia de elementos.
Una secuencia en Python puede manifestarse de diversas formas, siendo las más comunes las listas, tuplas o cadenas de caracteres.
La función sys.mean()
calcula el promedio aritmético -también conocido como media aritmética- de una secuencia de números.
La media es una medida de tendencia central que se utiliza para describir y comprender la distribución y las características de un conjunto de datos. Es un valor intermedio a los extremos de un conjunto de números.
Por lo tanto, esta función toma todos los valores numéricos proporcionados y devuelve su media, que representa el valor central o promedio de los datos.
La notación sys.mean(seq)
que encontramos en la documentación nos revela dos componentes esenciales:
sys
: el nombre del módulo que contiene todas las funciones estadísticasmean(seq)
: el nombre específico de la función dentro de ese módulo que calcula el promedio
Esta estructura de notación no es arbitraria; refleja la organización jerárquica de Python, donde el punto (.) actúa como un operador de acceso que nos permite alcanzar funciones específicas dentro de un módulo. Es similar a cómo en una biblioteca física navegaríamos desde la sección de matemáticas hasta el capítulo específico sobre promedios.
Por ejemplo, si tenemos una lista de valores numéricos, podemos calcular su promedio así:
Ejemplo de aplicación
# Paso 1: Importar el módulo sys
import sys
# Paso 2: Utilizar la función mean del módulo
# Por ejemplo, para calcular el promedio de una lista de números:
numeros = [1, 2, 3, 4, 5]
promedio = sys.mean(numeros)
print(f"El promedio de la lista es: {promedio}")
En este ejemplo, la línea
import sys
nos permite acceder a todas las funciones y características del módulosys
. Cuando utilizamos la instrucciónimport sys
en Python, estamos realizando una importación integral del módulo, lo que significa que traemos a nuestro programa todas las funcionalidades disponibles en dicho módulo. Posteriormente, utilizamossys.mean(numeros)
para calcular el promedio de la listanumeros
.mean(numeros)
sumará todos los números en la lista y dividirá el resultado por la cantidad de elementos en la lista. Finalmente, imprimimos el resultado del cálculo del promedio conprint(f"El promedio de la lista es: {promedio}")
.
Analicemos los componentes de este programa:
import sys
importa el módulosys
en nuestro programanumeros = [1, 2, 3, 4, 5]
crea una lista de númerospromedio = sys.mean(numeros)
calcula el promedio de la listanumeros
print(f"El promedio de la lista es: {promedio}")
imprime el resultado del cálculo del promedio
El resultado de la ejecución fue
El promedio de la lista es: 3.0
, ya que la funciónmean
calculó el promedio de los números en la listanumeros
. Si ejecutas el programa con una lista diferente, obtendrás un promedio distinto, ya que la funciónmean
calcula el promedio de los valores numéricos proporcionados. Por ejemplo, si cambias la lista anumeros = [10, 20, 30, 40, 50]
, el promedio será30.0
.
¡Para recordar!
La función mean()
es una herramienta poderosa para calcular el promedio aritmético de una secuencia de números, lo que nos permite obtener una medida central de los datos en nuestros programas de Python.
Es importante destacar que el resultado de la función mean()
es un número decimal (float), incluso si los números de entrada son enteros. Esto se debe a que Python maneja internamente los cálculos con precisión decimal para evitar errores de redondeo y pérdida de precisión.
Existen otras funciones del módulo sys
pero, por el momento, no vamos a profundizar en ellas.
Te invito a resolver la tira de ejercicios aquí para practicar lo aprendido, si aún no lo has hecho.