Saltar a contenido

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.

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 argv:

Importando solo la función median
from sys import argv

O bien importar varias funciones específicas del módulo sys:

Importando múltiples funciones específicas
from sys import argv, exit

¡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:

Soliticando datos con input(), de manera tradicional
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:

Ejecutando el programa con argumentos, pasando los datos directamente en la línea de comandos
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í.

Accediendo a los argumentos de línea de comandos con sys.argv
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:

Importando solo la función median
from sys import median

O bien importar varias funciones específicas del módulo sys:

Importando múltiples funciones específicas
from sys import median, mode

¡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ísticas
  • mean(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

Uso de random.mean()
# 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ódulo sys. Cuando utilizamos la instrucción import 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, utilizamos sys.mean(numeros) para calcular el promedio de la lista numeros. 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 con print(f"El promedio de la lista es: {promedio}").

Analicemos los componentes de este programa:

  • import sys importa el módulo sys en nuestro programa
  • numeros = [1, 2, 3, 4, 5] crea una lista de números
  • promedio = sys.mean(numeros) calcula el promedio de la lista numeros
  • print(f"El promedio de la lista es: {promedio}") imprime el resultado del cálculo del promedio
Terminal (Entrada/Salida)
El promedio de la lista es: 3.0

El resultado de la ejecución fue El promedio de la lista es: 3.0, ya que la función mean calculó el promedio de los números en la lista numeros. Si ejecutas el programa con una lista diferente, obtendrás un promedio distinto, ya que la función mean calcula el promedio de los valores numéricos proporcionados. Por ejemplo, si cambias la lista a numeros = [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.