11 bibliotecas y módulos de Python que todo desarrollador debe conocer

Las bibliotecas y los módulos facilitan la vida de un programador.

Cuando trabaja con proyectos, puede encontrar escenarios en los que no podrá resolver con la codificación estándar de un lenguaje de programación. Necesitamos algunas bibliotecas y módulos para superar esos problemas.

Afortunadamente, Python admite una gran cantidad de módulos y bibliotecas. Python tiene módulos incorporados, así como bibliotecas y módulos de terceros para el desarrollo. Veremos módulos tanto integrados como de terceros, que son muy beneficiosos para los proyectos de Python. Exploremos primero los módulos incorporados.

# Módulos incorporados

Python viene con muchos módulos integrados para diferentes casos de uso. Estudiaremos los módulos uno por uno según el uso.

Colecciones: tipos de datos de contenedor

Python tiene diferentes tipos de colecciones para almacenar la colección de datos. Por ejemplo, tuple, list, dict, etc., son algunas de las colecciones integradas de Python. El módulo de colecciones proporciona características adicionales a las colecciones integradas.

Si toma la recopilación de datos deque del módulo de colecciones, se parece más a una lista de Python. Pero podemos empujar y hacer estallar los elementos desde ambos lados. Es más rápido que la lista. Puede utilizar el deque según sus necesidades. Veamos algo de codificación real con la recopilación de datos de collections.deque.

import collections
nums = [1, 2, 3]
# creating deque collection from the list
deque = collections.deque(nums)

print(deque)

# adding an element at the end
deque.append(4)

print(deque)

# adding element at the starting
deque.appendleft(0)

print(deque)

# removing the element at the end
deque.pop()

print(deque)

# removing element at the starting
deque.popleft()

print(deque)

Ejecute el código anterior; ver los resultados También tenemos otras colecciones de datos en el módulo de colecciones.

Algunos de ellos son:

Encimera
Devuelve un dict que contiene la frecuencia de los elementos de la lista.

Es una subclase de la clase dict.

Lista de usuarios
Se utiliza para una subclase rápida de la lista.
UserDict
Se utiliza para una subclase rápida del dict.
Cadena de usuario
Se utiliza para una subclase rápida de str.

Ir a la documentación del colecciones módulo para explorar todas las colecciones de datos y métodos.

Nota rápida: use el método integrado dir (objeto) de Python para ver todos los métodos de un objeto.

CSV – manejo de archivos

Podemos usar los archivos CSV (valores separados por comas) para almacenar los datos tabulares. El formato más utilizado para importar y exportar datos de hojas de cálculo y bases de datos. Python viene con un módulo llamado CSV para manejar los archivos CSV.

Veamos un ejemplo de lectura de datos de un archivo CSV.

Cree un archivo con el nombre sample.csv en su computadora portátil y pegue los siguientes datos.

Name,Age,Graduation Year

Hafeez,21,2021

Aslan,23,2019

Rambabu,21,2021

Tenemos métodos para leer y escribir en el módulo CSV. Veremos cómo leer los datos de los archivos CSV utilizando el módulo CSV.

import csv

with open('sample.csv') as file:
    # creating the reader
    reader = csv.reader(file)
    
    # reading line by line using loop
    for row in reader:
        # row is a list containing elements from the CSV file
        # joingin the list using join(list) method
        print(','.join(row))

Ejecute el código anterior para ver los resultados.

También tendremos un objeto llamado csv.writer() para escribir los datos en el archivo CSV. Juega con los otros métodos por tu cuenta usando los métodos integrados dir() y help(). Tenemos otro módulo llamado JSON, que se usa para manejar los archivos JSON. También es un módulo incorporado.

Aleatorio – generación

Python tiene un módulo llamado random que permite generar los datos aleatoriamente. Podemos producir cualquier cosa aleatoriamente usando diferentes formas del módulo aleatorio. Puede usar este módulo en aplicaciones como tic-tac-toe, un juego de dados, etc.,

Veamos un programa sencillo para generar enteros aleatorios a partir de un rango dado.

import random

# generating a random number from the range 1-100
print(random.randint(1, 100)) 

Comprueba los otros métodos del módulo aleatorio usando los métodos dir() y help(). Escribamos un juego pequeño y simple usando el módulo aleatorio. Podemos llamarlo un juego de adivinanzas de números.

¿Qué es el juego de adivinanzas de números?

El programa generará un número aleatorio en el rango de 1 a 100. El usuario adivinará el número hasta que coincida con el número aleatorio generado por el programa. Cada vez imprimirá si el número de usuario es menor que el número aleatorio o mayor que el número aleatorio. Luego, el código fuente mostrará el número de conjeturas.

Vea el siguiente código para el programa anterior.

# importing random module
import random

# generating random number
random_number = random.randint(1, 100)

# initializing no. of guess to 0
guess_count = 0

# running loop until user guess the random number
while True:
    # getting user input

    user_guessed_number = int(input("Enter a number in the range of 1-100:- "))

    # checking for the equality
    if user_guessed_number == random_number:
        print(f"You have guessed the number in {guess_count} guesses")
        # breaking the loop
        break
    elif user_guessed_number < random_number:
        print("Your number is low")
    elif user_guessed_number > random_number:
        print("Your number is high")

    # incrementing the guess count
    guess_count += 1

Tkinter: aplicaciones GUI

Tkinter es un módulo incorporado para el desarrollo de aplicaciones GUI (interfaz gráfica de usuario). Es conveniente para los principiantes. Podemos desarrollar aplicaciones GUI como calculadora, sistema de inicio de sesión, editor de texto, etc. Hay muchos recursos para aprender el desarrollo de GUI con Tkinter.

El mejor apoyo es seguir al oficial. documentos. Para comenzar con Tkinter, vaya a los documentos y comience a crear hermosas aplicaciones GUI.

# Módulos de terceros

Solicitudes: solicitudes HTTP

El módulo de solicitudes se utiliza para enviar todo tipo de solicitudes HTTP al servidor. Permite el envío de solicitudes HTTP/1.1. También podemos agregar encabezados, datos y otras cosas usando los diccionarios de Python. Como es un módulo de terceros, tenemos que instalarlo. Ejecute el siguiente comando en la terminal o en la línea de comandos para instalar el módulo de solicitudes.

pip install requests

Es sencillo trabajar con el módulo de solicitudes. Podemos empezar a trabajar con las solicitudes sin ningún conocimiento previo. Veamos cómo enviar una solicitud de obtención y qué devuelve.

import requests

# sening a get request
request = requests.get("https://www.google.com/")

# 
print(request.status_code)
print(request.url)
print(request.request)

El código anterior imprimirá el código de estado, la URL y el método de solicitud (GET, POST). También obtendrá la fuente de la URL. Puede acceder a él con los bytes request.content. Ve a la documentos del módulo de solicitudes y explorar más.

BeautifulSoup4 – raspado web

La biblioteca BeautifulSoup se utiliza para el web scraping. Es un módulo útil para trabajar. Incluso los principiantes pueden empezar a trabajar con él usando el documentos. Vea el código de muestra para descartar los detalles de los informes de los clientes.

Puede instalar BeautifulSoup escribiendo el siguiente comando en la terminal/línea de comandos.

pip install beautifulsoup4

Y, un programa simple para su primer raspado.

## Scrping the ConsumerReport products list using BeautifulSoup

## importing bs4, requests modules
import bs4
import requests

## initializing url
url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm"

## getting the reponse from the page using get method of requests module
page = requests.get(url)

## storing the content of the page in a variable
html = page.content

## creating BeautifulSoup object
soup = bs4.BeautifulSoup(html, "lxml")

## see the class or id of the tag which contains names ans links
div_class = "crux-body-copy"

## getting all the divs using find_all method
div_tags = soup.find_all("div", class_=div_class) ## finding divs whichs has mentioned class

## we will see all the tags with a tags which has name and link inside the div
for tag in div_tags:
    print(tag)

Ejecute el código anterior para ver la magia del web scraping. Hay más marcos de web scraping disponibles para que pruebes.

# Ciencia de datos y aprendizaje automático

Existen algunas bibliotecas creadas especialmente para la ciencia de datos y el aprendizaje automático. Todos estos están desarrollados en C. Son ultrarrápidos.

entumecido

entumecido se utiliza para el cálculo científico.

Nos permite trabajar arrays multidimensionales. La implementación de matrices no existe en Python. Principalmente, los desarrolladores usan numpy en sus proyectos de aprendizaje automático. Es una biblioteca fácil de aprender y de código abierto. Casi todos los ingenieros de aprendizaje automático o científicos de datos usan este módulo para cálculos matemáticos complejos.

Ejecute el siguiente comando para instalar el módulo numpy.

pip install numpy

pandas

pandas es un módulo de análisis de datos. Podemos filtrar los datos de manera más efectiva utilizando la biblioteca pandas. Ofrece diferentes tipos de estructuras de datos que son útiles para trabajar. También proporciona manejo de archivos con diferentes formatos de archivo.

Instale el módulo usando el siguiente comando.

pip install pandas

matplotlib

matplotlib es una biblioteca de trazado de gráficos 2D. Puede visualizar los datos usando Matplotlib.

Podemos generar imágenes de las figuras en diferentes formatos. Trazamos diferentes tipos de diagramas como gráficos de barras, gráficos de error, histogramas, diagramas de dispersión, etc. Puede instalar matplotlib usando el siguiente comando.

pip install matplotlib

Nota rápida: – Puede instalar Anaconda para obtener todas las bibliotecas y módulos necesarios para Data Science.

Si te tomas en serio el aprendizaje de Python para la ciencia de datos y el aprendizaje automático, echa un vistazo a este brillante Curso de Udemy.

# Frameworks web

Podemos encontrar muchos frameworks web en Python. Discutiremos dos marcos que son ampliamente utilizados por los desarrolladores. Los dos marcos son Django y Flask.

Django

Django es un marco web de código abierto desarrollado en Python. Es conveniente crear sitios web con Django. Podemos generar cualquier tipo de sitios utilizando este marco. Algunos de los sitios más populares construidos con Django son Instagram, bitbucket, Disqus, Mozilla Firefox, etc.,

  • Podemos construir sitios web complejos rápidamente con las características de Django.
  • Django ya realiza muchas de las tareas necesarias para el desarrollo web.
  • También proporciona seguridad para los ataques de inyección SQL, secuencias de comandos entre sitios, falsificación de solicitudes entre sitios y secuestro de clics.
  • Podemos construir cualquier sitio web desde el sistema de gestión de contenido hasta los sitios sociales.

La documentación de Django es inequívoca. Tienes que familiarizarte con Python para Django. Pero no te preocupes si no lo eres. Aprendiendo Django es fácil.

Matraz

Flask es un framework micro web desarrollado en Python.

Es más pitónico que Django. Tiene excelente documentacion aquí. Utiliza el motor de plantillas Jinja. Es muy complejo crear grandes sitios web Flask. La mayoría de las funciones, como el enrutamiento de URL, el envío de solicitudes, las cookies seguras, las sesiones, etc., están presentes tanto en Django como en Flask.

Elija el marco en función de la complejidad de su sitio web. Django está ganando popularidad entre los desarrolladores. Es el marco más utilizado para el desarrollo web en Python.

Conclusión

Espero que conozcas los diferentes módulos, bibliotecas y marcos para Python.

Todo el mundo una vez un principiante.

Sea lo que sea que quieras comenzar, primero ve a la documentación y comienza a aprenderlo. Si no puede entender los documentos, busque cursos intensivos en el sitios web educativos.