11 Python-bibliotek och moduler som alla utvecklare bör känna till

Programmerares vardag underlättas av bibliotek och moduler.

När du jobbar med projekt kan det uppstå situationer som standardkoden i ett programmeringsspråk inte kan lösa. För att komma tillrätta med dessa problem krävs bibliotek och moduler.

Python har som tur är ett stort utbud av moduler och bibliotek. Python har både inbyggda moduler och tredjepartsbibliotek och moduler för utveckling. Vi ska titta närmare på både integrerade moduler och tredjepartsmoduler, som är mycket värdefulla för Python-projekt. Vi börjar med att utforska de inbyggda modulerna.

# Inbyggda Moduler

Python levereras med en mängd inbyggda moduler för diverse ändamål. Vi går igenom modulerna steg för steg beroende på användningsområde.

Samlingar – Behållardatatyper

Python erbjuder olika samlingstyper för att lagra data. Till exempel är tuple, list, dict osv. några av de inbyggda samlingarna i Python. Modulen `collections` adderar fler funktioner till de inbyggda samlingarna.

Om vi tar `deque`-datainsamlingen från `collections`-modulen, är den lik en Python-lista. Men vi kan lägga till och ta bort element från båda sidorna. Det är snabbare än en vanlig lista. Använd `deque` utifrån dina behov. Låt oss ta en titt på konkret kodning med `collections.deque`-datainsamlingen.

import collections
nums = [1, 2, 3]
# skapar en deque-samling från listan
deque = collections.deque(nums)

print(deque)

# lägger till ett element i slutet
deque.append(4)

print(deque)

# lägger till ett element i början
deque.appendleft(0)

print(deque)

# tar bort ett element i slutet
deque.pop()

print(deque)

# tar bort ett element i början
deque.popleft()

print(deque)

Kör koden ovan för att se resultatet. Det finns fler datainsamlingar i `collections`-modulen.

Några av dem är:

Counter
Returnerar en dictionary som visar frekvensen av element i listan.

Den är en underklass till klassen `dict`.

UserList
Används för en snabb underklass av listan.
UserDict
Används för en snabb underklass av en dictionary.
UserString
Används för en snabb underklass av en sträng.

Gå till dokumentationen för modulen collections för att utforska alla datainsamlingar och metoder.

Snabbtips: Använd den inbyggda metoden `dir(object)` i Python för att se alla metoder som finns för ett objekt.

CSV – Filhantering

Vi kan använda CSV-filer (kommaseparerade värden) för att lagra tabellformad data. Det är det vanligaste formatet för att importera och exportera data från kalkylblad och databaser. Python kommer med en modul som heter `csv` för att hantera CSV-filer.

Låt oss titta på ett exempel på hur man läser data från en CSV-fil.

Skapa en fil med namnet `sample.csv` på din dator och klistra in följande data.

Name,Age,Graduation Year
 
Hafeez,21,2021
 
Aslan,23,2019
 
Rambabu,21,2021

Det finns metoder för att läsa och skriva i `csv`-modulen. Vi ska titta på hur man läser data från CSV-filer med hjälp av `csv`-modulen.

import csv

with open('sample.csv') as file:
    # skapar en läsare
    reader = csv.reader(file)
    
    # läser rad för rad med hjälp av en loop
    for row in reader:
        # row är en lista som innehåller element från CSV-filen
        # slår ihop listan med metoden join(list)
        print(','.join(row))

Kör koden ovan för att se resultatet.

Det finns också ett objekt som heter `csv.writer()` för att skriva in data i en CSV-fil. Testa gärna de andra metoderna på egen hand med hjälp av de inbyggda metoderna `dir()` och `help()`. Det finns en annan modul som heter `json`, som används för att hantera JSON-filer. Det är också en inbyggd modul.

Random – Generering

Python har en modul som heter `random` som gör det möjligt att generera data slumpmässigt. Vi kan producera vad som helst slumpmässigt på olika sätt med modulen `random`. Du kan använda den här modulen i applikationer som tic-tac-toe, tärningsspel, och liknande.

Låt oss titta på ett enkelt program för att generera slumpmässiga heltal från ett givet intervall.

import random

# genererar ett slumpmässigt tal mellan 1 och 100
print(random.randint(1, 100))

Du kan undersöka de andra metoderna i `random`-modulen med metoderna `dir()` och `help()`. Låt oss skriva ett enkelt spel med modulen `random`. Vi kan kalla det ”Gissa talet”.

Vad är ”Gissa talet”-spelet?

Programmet genererar ett slumpmässigt tal i intervallet 1–100. Användaren gissar talet tills det matchar det slumpmässiga talet som genererats av programmet. Varje gång får användaren reda på om gissningen är lägre eller högre än det slumpmässiga talet. Källkoden kommer sedan att visa antalet gissningar.

Se koden nedan för programmet ovan.

# importerar random-modulen
import random

# genererar ett slumpmässigt tal
random_number = random.randint(1, 100)

# initierar antal gissningar till 0
guess_count = 0

# kör loopen tills användaren gissar det slumpmässiga talet
while True:
    # hämtar användarens input

    user_guessed_number = int(input("Ange ett tal i intervallet 1-100: "))

    # kollar om det är lika
    if user_guessed_number == random_number:
        print(f"Du har gissat talet på {guess_count} gissningar")
        # bryter loopen
        break
    elif user_guessed_number < random_number:
        print("Ditt tal är för lågt")
    elif user_guessed_number > random_number:
        print("Ditt tal är för högt")

    # ökar antal gissningar
    guess_count += 1

Tkinter – GUI-applikationer

Tkinter är en inbyggd modul för att utveckla GUI-applikationer (Graphical User Interface). Den är praktisk för nybörjare. Vi kan utveckla GUI-applikationer som miniräknare, inloggningssystem, textredigerare, och liknande. Det finns gott om resurser för att lära sig GUI-utveckling med Tkinter.

Det bästa stödet är att följa den officiella dokumentationen. För att komma igång med Tkinter, gå till dokumentationen och börja skapa snygga GUI-applikationer.

# Tredjepartsmoduler

Requests – HTTP-förfrågningar

Requests-modulen används för att skicka alla typer av HTTP-förfrågningar till servern. Den stöder HTTP/1.1-förfrågningar. Vi kan även lägga till headers, data och andra saker med Python-dictionaries. Eftersom det är en tredjepartsmodul måste vi installera den. Kör följande kommando i terminalen eller kommandotolken för att installera `requests`-modulen.

pip install requests

Det är enkelt att jobba med `requests`-modulen. Vi kan börja arbeta med förfrågningarna utan några förkunskaper. Låt oss titta på hur man skickar en GET-förfrågan och vad den returnerar.

import requests

# skickar en get-förfrågan
request = requests.get("https://www.google.com/")

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

Koden ovan skriver ut `status_code`, `URL` och begäran metod (GET, POST). Du kommer också att få källkoden för URL:en. Du kan komma åt den med `request.content`. Gå till dokumentationen för modulen `requests` och utforska mer.

BeautifulSoup4 – Webbskrapning

Biblioteket BeautifulSoup används för webbskrapning. Det är en praktisk modul att arbeta med. Även nybörjare kan börja jobba med den med hjälp av dokumentationen. Se exempelkoden för att hämta kundrapportdetaljerna.

Du kan installera BeautifulSoup genom att skriva följande kommando i terminalen/kommandotolken.

pip install beautifulsoup4

Och ett enkelt program för din första skrapning.

## Skrapar ConsumerReport-produktlistan med BeautifulSoup

## importerar bs4- och requests-moduler
import bs4
import requests

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

## hämtar svaret från sidan med metoden get i requests-modulen
page = requests.get(url)

## lagrar sidans innehåll i en variabel
html = page.content

## skapar ett BeautifulSoup-objekt
soup = bs4.BeautifulSoup(html, "lxml")

## undersök klassen eller id:t för taggen som innehåller namn och länkar
div_class = "crux-body-copy"

## hämtar alla divs med find_all-metoden
div_tags = soup.find_all("div", class_=div_class) ## hittar divs med den angivna klassen

## vi ser alla taggar med a-taggar som har namn och länk inuti div:en
for tag in div_tags:
    print(tag)

Kör koden ovan för att se magin med webbskrapning. Det finns fler webbskrapningsramverk som du kan testa.

# Datavetenskap och maskininlärning

Det finns flera bibliotek som är specifikt utvecklade för datavetenskap och maskininlärning. Alla dessa är utvecklade i C och är mycket snabba.

Numpy

Numpy används för vetenskapliga beräkningar.

Det låter oss jobba med flerdimensionella arrayer. Array-implementering finns inte i Python. Utvecklare använder främst Numpy i sina maskininlärningsprojekt. Det är lätt att lära sig och är ett bibliotek med öppen källkod. Nästan alla maskininlärningsingenjörer eller datavetare använder den här modulen för komplexa matematiska beräkningar.

Kör följande kommando för att installera Numpy-modulen.

pip install numpy

Pandas

Pandas är en modul för dataanalys. Vi kan filtrera data mest effektivt med hjälp av Pandas-biblioteket. Det erbjuder olika typer av datastrukturer som är praktiska att jobba med. Det erbjuder också filhantering med olika filformat.

Installera modulen med följande kommando.

pip install pandas

Matplotlib

Matplotlib är ett 2D-ritbibliotek. Du kan visualisera data med Matplotlib.

Vi kan skapa bilder av figurerna i olika format. Vi ritar olika typer av diagram som stapeldiagram, feldiagram, histogram, scatterplots osv. Du kan installera Matplotlib med följande kommando.

pip install matplotlib

Snabbtips: Du kan installera Anaconda för att få alla bibliotek och moduler som krävs för datavetenskap.

Om du menar allvar med att lära dig Python för datavetenskap och ML, kolla in den här utmärkta Udemy-kursen.

# Web Frameworks

Det finns många webbramverk i Python. Vi ska diskutera två ramverk som används flitigt av utvecklare. De två ramverken är Django och Flask.

Django

Django är ett webbramverk med öppen källkod utvecklat i Python. Det är praktiskt att skapa webbplatser med Django. Vi kan skapa alla typer av webbplatser med det här ramverket. Några av de mest populära webbplatserna som har byggts med Django är Instagram, Bitbucket, Disqus, Mozilla Firefox osv.

  • Vi kan snabbt bygga komplexa webbplatser med funktionerna i Django.
  • Django gör redan många av de uppgifter som krävs för webbutveckling.
  • Det ger även skydd mot SQL Injection, cross-site scripting, cross-site request förfalskning och clickjacking.
  • Vi kan bygga vilken webbplats som helst, från innehållshanteringssystem till sociala webbplatser.

Dokumentationen av Django är entydig. Du behöver vara bekant med Python för att använda Django. Men oroa dig inte om du inte är det. Att lära sig Django är lätt.

Flask

Flask är ett mikrowebbramverk utvecklat i Python.

Det är mer Python-likt än Django. Det har utmärkt dokumentation här. Det använder Jinja mallmotor. Det är mer komplicerat att skapa stora webbplatser i Flask. De flesta funktioner som URL-routing, Request-hantering, säkra cookies, sessioner osv. finns i både Django och Flask.

Välj ramverk baserat på komplexiteten i din webbplats. Django är populärt bland utvecklare och är det mest använda ramverket för webbutveckling i Python.

Sammanfattning

Jag hoppas att du har lärt dig om olika moduler, bibliotek och ramverk för Python.

Alla var nybörjare en gång.

Oavsett vad du vill börja med, gå först till dokumentationen och börja lära dig. Om du inte förstår dokumentationen, leta efter snabbkurser på utbildningswebbplatser.