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.