Bibliotheken und Module sind unverzichtbar für die Arbeit eines jeden Programmierers.
Bei der Arbeit an Projekten stößt man oft auf Aufgaben, die mit den Standardfunktionen einer Programmiersprache nicht zu lösen sind. Hier kommen Bibliotheken und Module ins Spiel, um diese Hürden zu überwinden.
Python ist dafür bekannt, eine enorme Auswahl an Modulen und Bibliotheken zu unterstützen. Es gibt sowohl integrierte Module als auch externe Bibliotheken, die die Entwicklung vereinfachen. Wir betrachten hier einige der nützlichsten integrierten und externen Module für Python-Projekte. Zunächst werfen wir einen Blick auf die eingebauten Module.
# Integrierte Module
Python wird mit einer Vielzahl von Modulen für diverse Anwendungsfälle geliefert. Wir werden diese Module nach ihrer Verwendung kategorisiert betrachten.
Sammlungen – Container-Datentypen
Python bietet verschiedene Arten von Sammlungen zur Speicherung von Daten, wie Tupel, Listen, Dictionaries usw. Das `collections`-Modul erweitert diese eingebauten Sammlungen um zusätzliche Funktionen.
Ein gutes Beispiel ist die `deque`-Datensammlung aus dem `collections`-Modul, die einer Python-Liste ähnelt. Der wesentliche Unterschied ist, dass wir Elemente von beiden Seiten hinzufügen und entfernen können. Dies ist in manchen Fällen effizienter als die herkömmliche Liste. Hier ist ein praktisches Beispiel für die Verwendung von `collections.deque`:
import collections zahlen = [1, 2, 3] # Erstellung einer deque-Sammlung aus der Liste deque = collections.deque(zahlen) print(deque) # Hinzufügen eines Elements am Ende deque.append(4) print(deque) # Hinzufügen eines Elements am Anfang deque.appendleft(0) print(deque) # Entfernen eines Elements am Ende deque.pop() print(deque) # Entfernen eines Elements am Anfang deque.popleft() print(deque)
Wenn Sie diesen Code ausführen, können Sie die Ergebnisse beobachten. Das `collections`-Modul bietet noch weitere nützliche Datensammlungen.
Einige davon sind:
Zähler
Gibt ein Dictionary zurück, das die Häufigkeit von Elementen aus einer Liste enthält. Es ist eine Unterklasse der `dict`-Klasse.
Benutzerliste
Wird für eine schnelle Ableitung der Liste verwendet.
BenutzerDict
Wird für eine schnelle Ableitung des Dictionaries verwendet.
BenutzerString
Wird für eine schnelle Ableitung des Strings verwendet.
Für eine detailliertere Übersicht über alle verfügbaren Datensammlungen und Methoden empfehlen wir die offizielle Dokumentation des `collections`-Moduls.
Kleiner Hinweis: Nutzen Sie die eingebaute Methode `dir(object)`, um alle verfügbaren Methoden eines Objekts aufzulisten.
CSV – Dateiverwaltung
CSV-Dateien (Comma-Separated Values) sind ein gängiges Format zum Speichern tabellarischer Daten. Sie werden häufig für den Import und Export von Daten aus Tabellenkalkulationen und Datenbanken verwendet. Python bietet ein eingebautes Modul namens `csv` zur Verarbeitung von CSV-Dateien.
Betrachten wir ein Beispiel zum Lesen von Daten aus einer CSV-Datei:
Erstellen Sie eine Datei namens `sample.csv` auf Ihrem Computer und fügen Sie folgende Daten ein:
Name,Alter,Abschlussjahr Hafeez,21,2021 Aslan,23,2019 Rambabu,21,2021
Das `csv`-Modul bietet Methoden zum Lesen und Schreiben von CSV-Dateien. Hier ist ein Beispiel, wie Sie Daten mit dem Modul aus einer CSV-Datei lesen können:
import csv with open('sample.csv') as datei: # Erstellung eines Readers reader = csv.reader(datei) # Zeilenweises Lesen mit einer Schleife for zeile in reader: # 'zeile' ist eine Liste mit Elementen aus der CSV-Datei # Zusammenfügen der Liste mit der 'join(liste)'-Methode print(','.join(zeile))
Führen Sie den Code aus, um die Ergebnisse zu sehen.
Es gibt auch ein Objekt namens `csv.writer()`, um Daten in eine CSV-Datei zu schreiben. Experimentieren Sie mit anderen Methoden unter Verwendung von `dir()` und `help()`. Ein weiteres Modul für die Dateiverarbeitung ist das JSON-Modul, ebenfalls ein eingebautes Modul.
Zufall – Generation
Das `random`-Modul in Python ermöglicht die Generierung zufälliger Daten. Es kann für vielfältige Anwendungen wie Spiele (Tic-Tac-Toe, Würfelspiele usw.) verwendet werden.
Ein einfaches Programm zur Erzeugung zufälliger Ganzzahlen in einem bestimmten Bereich könnte wie folgt aussehen:
import random # Erzeugung einer Zufallszahl zwischen 1 und 100 print(random.randint(1, 100))
Entdecken Sie weitere Methoden des `random`-Moduls mit `dir()` und `help()`. Ein kleines Zahlenratespiel veranschaulicht die praktische Anwendung des Zufallsmoduls:
Das Zahlenratespiel:
Das Programm generiert eine Zufallszahl zwischen 1 und 100. Der Benutzer rät die Zahl, bis sie mit der Zufallszahl des Programms übereinstimmt. Das Programm gibt Hinweise, ob die Benutzereingabe zu niedrig oder zu hoch ist und zählt die benötigten Versuche.
Hier ist der Code für dieses Spiel:
# Importieren des random-Moduls import random # Generieren einer Zufallszahl zufallszahl = random.randint(1, 100) # Initialisierung des Zählers für die Versuche versuchszähler = 0 # Schleife, bis der Benutzer die Zufallszahl errät while True: # Benutzereingabe einholen benutzer_zahl = int(input("Geben Sie eine Zahl zwischen 1 und 100 ein: ")) # Überprüfung der Gleichheit if benutzer_zahl == zufallszahl: print(f"Sie haben die Zahl in {versuchszähler} Versuchen erraten.") # Schleife beenden break elif benutzer_zahl < zufallszahl: print("Ihre Zahl ist zu niedrig.") elif benutzer_zahl > zufallszahl: print("Ihre Zahl ist zu hoch.") # Erhöhen des Versuchszählers versuchszähler += 1
Tkinter – GUI-Anwendungen
Tkinter ist ein eingebautes Modul zur Entwicklung von Anwendungen mit grafischer Benutzeroberfläche (GUI). Es ist besonders für Anfänger geeignet und ermöglicht die Entwicklung von Anwendungen wie Taschenrechnern, Anmeldesystemen, Texteditoren usw. Es gibt viele Ressourcen, um die GUI-Entwicklung mit Tkinter zu erlernen.
Die offizielle Dokumentation ist eine gute erste Anlaufstelle. Beginnen Sie dort und entwickeln Sie Ihre eigenen GUI-Anwendungen.
# Externe Module
Requests – HTTP-Anfragen
Das `requests`-Modul ermöglicht das Senden von HTTP-Anfragen aller Art an einen Server. Es unterstützt HTTP/1.1-Anfragen und ermöglicht das Hinzufügen von Headern, Daten und anderen Informationen mithilfe von Python-Dictionaries. Da es sich um ein externes Modul handelt, muss es zunächst installiert werden. Dies geschieht über folgenden Befehl im Terminal oder in der Kommandozeile:
pip install requests
Die Verwendung des `requests`-Moduls ist intuitiv und auch für Anfänger leicht zugänglich. Schauen wir uns an, wie eine Get-Anfrage gesendet wird und was diese zurückgibt.
import requests # Senden einer Get-Anfrage anfrage = requests.get("https://www.google.com/") # Ausgabe des Statuscodes, der URL und der Anforderungsmethode print(anfrage.status_code) print(anfrage.url) print(anfrage.request)
Der obige Code gibt den Statuscode, die URL und die Anforderungsmethode (GET, POST) aus. Die Inhalte der angefragten URL sind als `request.content`-Bytes verfügbar. Weitere Details finden Sie in der Dokumentation des `requests`-Moduls.
BeautifulSoup4 – Web-Scraping
Die `BeautifulSoup`-Bibliothek ist ein Werkzeug für Web-Scraping. Sie ermöglicht es, Informationen aus Webseiten zu extrahieren. Die Dokumentation ist ein guter Ausgangspunkt, auch für Anfänger. Hier ein Beispiel, um Kundendetails von einer Webseite zu extrahieren:
Die Installation erfolgt über den folgenden Befehl in der Kommandozeile/Terminal:
pip install beautifulsoup4
Hier ein einfaches Beispielprogramm:
## Scrapen der ConsumerReport Produktliste mit BeautifulSoup ## Importieren der benötigten Module import bs4 import requests ## URL initialisieren url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm" ## Anfordern der Seite mit requests seite = requests.get(url) ## Speichern des Seiteninhalts in einer Variable html = seite.content ## Erstellen eines BeautifulSoup-Objekts suppe = bs4.BeautifulSoup(html, "lxml") ## Suche nach dem div-Tag, der Namen und Links enthält div_klasse = "crux-body-copy" ## Finden aller div-Tags mit der angegebenen Klasse div_tags = suppe.find_all("div", class_=div_klasse) ## Anzeigen der Links und zugehörigen Texte for tag in div_tags: print(tag)
Führen Sie diesen Code aus, um das Web-Scraping in Aktion zu sehen. Es gibt noch weitere Web-Scraping-Frameworks zu entdecken.
# Datenwissenschaft und maschinelles Lernen
Speziell für den Bereich Datenwissenschaft und maschinelles Lernen gibt es eine Reihe von Bibliotheken, die größtenteils in C geschrieben sind und daher sehr schnell sind.
NumPy
NumPy ist eine Bibliothek für wissenschaftliche Berechnungen.
Es ermöglicht das Arbeiten mit mehrdimensionalen Arrays, die in Python selbst nicht implementiert sind. NumPy ist ein Standardwerkzeug in vielen Machine-Learning-Projekten. Es ist eine Open-Source-Bibliothek und ein wesentliches Werkzeug für Machine Learning Engineers und Data Scientists für komplexe mathematische Berechnungen.
Die Installation erfolgt mit diesem Befehl:
pip install numpy
Pandas
Pandas ist ein Modul für Datenanalyse. Es bietet leistungsfähige Möglichkeiten, Daten zu filtern und zu bearbeiten, und bietet diverse Datenstrukturen und Möglichkeiten zur Dateiverwaltung.
Die Installation erfolgt mit diesem Befehl:
pip install pandas
Matplotlib
Matplotlib ist eine Bibliothek zum Erstellen von 2D-Diagrammen. Mit Matplotlib können Daten visualisiert werden.
Sie können Abbildungen in verschiedenen Formaten erstellen und verschiedene Diagrammtypen wie Balkendiagramme, Fehlerdiagramme, Histogramme, Streudiagramme usw. erstellen. Die Installation erfolgt mit dem folgenden Befehl:
pip install matplotlib
Hinweis: Mit der Installation von Anaconda erhalten Sie eine Sammlung von Bibliotheken und Modulen, die für die Datenwissenschaft benötigt werden.
Wenn Sie Python ernsthaft für Data Science und ML einsetzen möchten, ist dieser ausgezeichnete Udemy-Kurs empfehlenswert.
# Web-Frameworks
Es gibt eine Reihe von Web-Frameworks für Python. Wir werden hier zwei der beliebtesten Frameworks diskutieren: Django und Flask.
Django
Django ist ein Open-Source-Webframework, das in Python entwickelt wurde. Es ist sehr nützlich für die Erstellung von Webseiten, von einfachen Webseiten bis zu komplexen Anwendungen. Bekannte Webseiten, die mit Django erstellt wurden, sind Instagram, Bitbucket, Disqus, Mozilla Firefox etc.
- Django ermöglicht die schnelle Entwicklung komplexer Webseiten.
- Es nimmt Entwicklern viele Aufgaben ab, die bei der Webentwicklung erforderlich sind.
- Django bietet Schutz vor Angriffen wie SQL-Injection, Cross-Site-Scripting, Cross-Site-Request-Forgery und Clickjacking.
- Webseiten von Content-Management-Systemen bis zu sozialen Netzwerken können entwickelt werden.
Die Dokumentation von Django ist sehr gut. Grundkenntnisse in Python sind für die Arbeit mit Django erforderlich. Aber keine Sorge, das Erlernen von Django ist nicht schwer.
Flask
Flask ist ein Micro-Web-Framework, das ebenfalls in Python entwickelt wurde.
Es ist „pythonischer“ als Django und hat eine hervorragende Dokumentation. Es verwendet die Jinja-Template-Engine. Die Entwicklung umfangreicher Webseiten mit Flask kann jedoch komplex sein. Viele wichtige Funktionen, wie URL-Routing, Request-Dispatching, sichere Cookies, Sessions usw., sind sowohl in Django als auch in Flask vorhanden.
Die Wahl des Frameworks hängt von der Komplexität der zu entwickelnden Webseite ab. Django erfreut sich immer größerer Beliebtheit und ist das am häufigsten verwendete Framework für die Webentwicklung mit Python.
Zusammenfassung
Ich hoffe, diese Übersicht hat Ihnen einen Einblick in verschiedene Module, Bibliotheken und Frameworks für Python gegeben.
Jeder fängt einmal an.
Beginnen Sie mit dem Erlernen, indem Sie die Dokumentation konsultieren. Wenn die Dokumentation zu komplex ist, finden Sie auch Kurse auf Bildungswebseiten.