Biblioteker og moduler i Python: En dypdykk
Biblioteker og moduler er uunnværlige verktøy som gjør programmeringsarbeidet smidigere og mer effektivt.
Under utviklingen av komplekse prosjekter kan det dukke opp situasjoner der standard programmeringskonstruksjoner ikke strekker til. I slike tilfeller kommer biblioteker og moduler til unnsetning for å løse utfordringene.
Heldigvis har Python et rikt utvalg av moduler og biblioteker, både innebygde og tredjeparts, som kan benyttes i utviklingsarbeidet. I denne artikkelen skal vi utforske noen av disse, med fokus på de som er mest nyttige for Python-prosjekter. Vi begynner med de innebygde modulene.
# Innebygde moduler i Python
Python leveres med et mangfold av innebygde moduler som dekker ulike bruksområder. Vi skal se nærmere på noen av disse, sortert etter funksjonalitet.
Samlinger – Beholderdatatyper
Python tilbyr flere innebygde samlingstyper for lagring av data, som tupler, lister og ordbøker. Modulen «collections» utvider disse med ekstra funksjonalitet.
Et eksempel er «deque», en datastruktur som minner om en Python-liste, men med mulighet for å legge til og fjerne elementer fra begge ender. Dette er en operasjon som ofte er raskere enn med en vanlig liste. Bruk «deque» når det passer dine behov. La oss se et praktisk eksempel:
import collections nums = [1, 2, 3] # Oppretter en deque-samling fra listen deque = collections.deque(nums) print(deque) # Legger til et element på slutten deque.append(4) print(deque) # Legger til et element i starten deque.appendleft(0) print(deque) # Fjerner elementet på slutten deque.pop() print(deque) # Fjerner elementet i starten deque.popleft() print(deque)
Kjør denne koden og observer resultatene. Modulen «collections» inneholder også andre nyttige datastrukturer.
Noen eksempler er:
Counter:
Returnerer en ordbok med frekvensen av elementer i en liste.
UserList:
Brukes for en rask subklasse av listen.
UserDict:
Brukes for en rask subklasse av ordboken.
UserString:
Brukes for en rask subklasse av streng.
For å utforske alle datastrukturer og metoder, se dokumentasjonen for collections-modulen.
Et raskt tips: bruk den innebygde Python-funksjonen `dir(objekt)` for å se alle metoder til et gitt objekt.
CSV – filhåndtering
CSV-filer (Comma Separated Values) er et vanlig format for lagring av tabellformaterte data, ofte brukt for import og eksport fra regneark og databaser. Python har en innebygd modul, «csv», for håndtering av disse filene.
La oss se et eksempel på hvordan man leser data fra en CSV-fil.
Opprett en fil ved navn «sample.csv» og lim inn følgende innhold:
Name,Age,Graduation Year Hafeez,21,2021 Aslan,23,2019 Rambabu,21,2021
Modulen «csv» har metoder for både å lese og skrive til CSV-filer. Her skal vi fokusere på å lese data:
import csv with open('sample.csv') as file: # Oppretter en leser reader = csv.reader(file) # Leser linje for linje med en løkke for row in reader: # Hver linje er en liste med elementer # Slår sammen elementene ved hjelp av join() print(','.join(row))
Kjør koden for å se resultatet.
Modulen har også et `csv.writer()`-objekt for å skrive data til CSV-filer. Utforsk de andre metodene selv ved hjelp av `dir()` og `help()`. Det finnes også en annen innebygd modul, «json», for håndtering av JSON-filer.
Tilfeldig – generasjon
Modulen «random» brukes for å generere tilfeldige data i Python. Den kan benyttes i mange applikasjoner, som for eksempel spill.
Her er et enkelt eksempel på hvordan du genererer tilfeldige heltall innenfor et gitt område:
import random # Genererer et tilfeldig tall mellom 1 og 100 print(random.randint(1, 100))
Utforsk andre metoder i modulen ved å bruke `dir()` og `help()`. La oss lage et enkelt tallgjettespill ved hjelp av denne modulen.
Slik fungerer spillet:
Programmet genererer et tilfeldig tall mellom 1 og 100. Brukeren gjetter tallet. Ved hvert forsøk får brukeren tilbakemelding om tallet er for lavt eller for høyt, inntil brukeren gjetter riktig tall. Antallet gjetninger vises til slutt.
Her er kildekoden:
# Importerer random-modulen import random # Genererer tilfeldig tall random_number = random.randint(1, 100) # Initialiserer antall forsøk guess_count = 0 # Kjører løkke til brukeren gjetter tallet while True: # Henter brukerens input user_guessed_number = int(input("Skriv et tall mellom 1-100: ")) # Sjekker om tallet er likt if user_guessed_number == random_number: print(f"Du gjettet tallet riktig etter {guess_count} forsøk!") # Bryter løkken break elif user_guessed_number < random_number: print("Tallet er for lavt") elif user_guessed_number > random_number: print("Tallet er for høyt") # Øker antall forsøk guess_count += 1
Tkinter – GUI-applikasjoner
Tkinter er en innebygd modul for utvikling av grafiske brukergrensesnitt (GUI). Den er ansett som brukervennlig, spesielt for nybegynnere. Med Tkinter kan man utvikle applikasjoner som kalkulatorer, påloggingssystemer og tekstredigeringsprogrammer. Det finnes mange ressurser for å lære GUI-utvikling med Tkinter.
Det anbefales å studere de offisielle dokumentene. Start der, og skap vakre GUI-applikasjoner.
# Tredjepartsmoduler
Forespørsler – HTTP-forespørsler
Modulen «requests» brukes for å sende HTTP-forespørsler av ulike typer til en server. Den støtter HTTP/1.1-forespørsler og lar deg legge til overskrifter, data og andre elementer via Python-ordbøker. Siden dette er en tredjepartsmodul, må du installere den. Kjør følgende kommando i terminalen eller kommandolinjen:
pip install requests
Det er enkelt å arbeide med «requests». Her er et eksempel på hvordan man sender en GET-forespørsel og hva responsen inneholder:
import requests # Sender en get-forespørsel request = requests.get("https://www.google.com/") # Skriver ut statuskode, URL og forespørselen print(request.status_code) print(request.url) print(request.request)
Koden over skriver ut statuskode, URL og forespørselstype (GET, POST). Du får også tilgang til kilden til siden via `request.content`. Se dokumentasjonen for å lære mer om modulen.
BeautifulSoup4 – nettskraping
Biblioteket BeautifulSoup brukes til nettskraping. Det er en nyttig modul som er lett å komme i gang med, selv for nybegynnere. Se dokumentasjonen for mer informasjon. Her er et eksempel på hvordan man kan hente ut data fra en nettside:
Installer BeautifulSoup med kommandoen:
pip install beautifulsoup4
Her er en enkel kode som skraper en nettside:
## Skraper produktlisten fra ConsumerReport ## Importerer bs4 og requests import bs4 import requests ## Initialiserer URL url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm" ## Henter responsen fra siden page = requests.get(url) ## Lagrer innholdet i en variabel html = page.content ## Oppretter et BeautifulSoup-objekt soup = bs4.BeautifulSoup(html, "lxml") ## Finner div-taggen som inneholder produktnavn og lenker div_class = "crux-body-copy" ## Henter alle div-tags med den spesifiserte klassen div_tags = soup.find_all("div", class_=div_class) ## Skriver ut alle tags som inneholder produktnavn og lenker for tag in div_tags: print(tag)
Kjør koden og opplev magien med nettskraping. Det finnes mange andre rammeverk for nettskraping som kan utforskes.
# Datavitenskap og maskinlæring
Det finnes flere biblioteker som er spesielt utviklet for datavitenskap og maskinlæring, ofte skrevet i C for ytelsens skyld.
Numpy
Numpy brukes for vitenskapelige beregninger.
Biblioteket gir mulighet for å arbeide med flerdimensjonale matriser. Det finnes ikke implementert i Python. Numpy brukes ofte i maskinlæringsprosjekter. Det er et brukervennlig og åpent kildekode-bibliotek, ofte brukt av dataforskere for komplekse matematiske beregninger.
Installer numpy med kommandoen:
pip install numpy
Pandaer
Pandaer er en modul for dataanalyse. Den lar oss filtrere data på en effektiv måte og tilbyr datastrukturer som er praktiske å jobbe med, samt filhåndteringsfunksjoner.
Installer modulen med kommandoen:
pip install pandas
Matplotlib
Matplotlib er et 2D-grafplottbibliotek. Det kan visualisere data i form av ulike diagrammer og figurer. Eksempler er søylediagrammer, histogrammer og spredningsplott.
Installer modulen med kommandoen:
pip install matplotlib
Et tips: Installer Anaconda for å få alle bibliotekene du trenger for datavitenskap.
Hvis du er interessert i datavitenskap og maskinlæring med Python, anbefales dette Udemy-kurset.
# Nettrammeverk
Det finnes en rekke nettrammeverk i Python. Vi skal se nærmere på to av de mest brukte: Django og Flask.
Django
Django er et åpent kildekode-nettrammeverk utviklet i Python. Det er velegnet for å skape nettsider av alle slag. Populære nettsteder som Instagram, Bitbucket, Disqus og Mozilla Firefox er bygget med Django.
- Django gir mulighet til å bygge komplekse nettsider raskt.
- Rammeverket håndterer mange av de vanlige oppgavene ved utvikling av nettsider.
- Django sørger for beskyttelse mot angrep som SQL-injeksjon, cross-site scripting og cross-site request forgery.
- Det kan brukes til alt fra innholdsstyringssystemer til sosiale medier.
Dokumentasjonen til Django er meget god. Du må ha kjennskap til Python. Det er lett å lære Django.
Flask
Flask er et lettvektsnettrammeverk som er utviklet i Python.
Det er mer pytonisk enn Django og har utmerket dokumentasjon her. Det bruker Jinja-malmotoren. Det er mer komplisert å bygge store nettsteder med Flask. De fleste funksjonene som URL-ruting, forespørselshåndtering, sikre informasjonskapsler og økter er tilgjengelig i både Django og Flask.
Velg rammeverk ut fra kompleksiteten til prosjektet ditt. Django er populært blant utviklere og er et av de mest brukte rammeverkene for webutvikling med Python.
Konklusjon
Forhåpentligvis har denne artikkelen gitt deg en innføring i noen av de mange modulene, bibliotekene og rammeverkene som finnes i Python.
Husk at alle en gang var nybegynnere.
Uansett hva du ønsker å lære, start med å lese dokumentasjonen. Hvis du har vansker med å forstå dokumentasjonen, finn videoopplæringer på læringsnettsider.