Extraer información de parámetros

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a extraer números de un texto dado, calcular el promedio de esos números y redondear el resultado a dos decimales. Este proyecto te ayudará a practicar el uso de expresiones regulares y el manejo de argumentos de línea de comandos en Python.

👀 Vista previa

$ python3 ~/project/find_num.py "a11 b3.14c15 16"
11.29
$ python3 ~/project/find_num.py "a 5 b 6 c7 dd8 9"
7.00
$ python3 ~/project/find_num.py "ad1dg6dgd9dg4qwe10"
6.00

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo usar expresiones regulares para encontrar todos los números (enteros y de punto flotante) en un texto dado
  • Cómo convertir los números coincidentes de cadenas a flotantes
  • Cómo calcular el promedio de los números extraídos
  • Cómo formatear el resultado del promedio a dos decimales
  • Cómo manejar argumentos de línea de comandos en un script de Python

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Escribir un script de Python que pueda extraer números de un texto dado
  • Calcular el promedio de los números extraídos
  • Formatear el resultado del promedio a dos decimales
  • Ejecutar el script desde la línea de comandos y pasar el texto como argumento

Configurar el entorno del proyecto

En este paso, aprenderás a configurar el entorno del proyecto y crear los archivos necesarios.

  1. Abra una terminal y navegue hasta el directorio /home/labex/project.
  2. Cree un nuevo archivo de Python llamado find_num.py en el directorio /home/labex/project.
cd /home/labex/project
touch find_num.py
  1. Abra el archivo find_num.py en un editor de texto.

Importar los módulos necesarios

En este paso, aprenderás a importar los módulos necesarios para el proyecto.

  1. Agregue el siguiente código al principio del archivo find_num.py:
import re  ## Importar el módulo de expresiones regulares
import sys  ## Importar el módulo sys para los argumentos de línea de comandos

Estos módulos se utilizarán para trabajar con expresiones regulares y manejar los argumentos de línea de comandos.

Definir la función para calcular el promedio

En este paso, aprenderás a definir una función para calcular el promedio de los números en un texto dado.

  1. Agregue la siguiente función al archivo find_num.py:
def calculate_average(text):
    ## Utilice un patrón de expresión regular para encontrar todos los números de punto flotante y enteros en el texto
    numbers = re.findall(r"[-+]?\d*\.\d+|\d+", text)
    ## Convierta los números coincidentes de cadenas a flotantes utilizando comprensión de listas
    numbers = [float(num) for num in numbers]
    ## Calcule el promedio de estos números
    average = sum(numbers) / len(numbers)
    ## Formatee el promedio con dos decimales
    average_formatted = "{:.2f}".format(average)
    return average_formatted

Esta función toma un texto como entrada, utiliza una expresión regular para extraer todos los números (enteros y de punto flotante) del texto, calcula el promedio de estos números y formatea el resultado a dos decimales.

Implementar la lógica principal

En este paso, aprenderás a implementar la lógica principal del script.

  1. Agregue el siguiente código al archivo find_num.py:
if __name__ == "__main__":
    ## Lea el texto a analizar a partir de los argumentos de línea de comandos (el primer argumento, sys.argv[1])
    text = sys.argv[1]
    ## Llame a la función calculate_average con el texto proporcionado
    average = calculate_average(text)
    ## Imprima el promedio calculado con dos decimales
    print(average)

Este código verifica si el script se está ejecutando como el programa principal (if __name__ == "__main__":). Si es así, lee el texto a analizar a partir de los argumentos de línea de comandos (el primer argumento, sys.argv[1]), llama a la función calculate_average con el texto proporcionado e imprime el promedio calculado.

Prueba el script

En este paso, aprenderás a probar el script con los ejemplos proporcionados.

  1. Guarde el archivo find_num.py.
  2. Ejecute el script con los ejemplos proporcionados:
python3 /home/labex/project/find_num.py "a11 b3.14c15 16"
python3 /home/labex/project/find_num.py "a 5 b 6 c7 dd8 9"
python3 /home/labex/project/find_num.py "ad1dg6dgd9dg4qwe10"

La salida debe coincidir con los resultados esperados:

11.29
7.00
6.00

¡Felicidades! Has completado el proyecto. El script que has creado ahora puede extraer números de un texto dado, calcular el promedio y redondear el resultado a dos decimales.

✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.