Pythonworld.online Glossar - Dein Tor zur Python-Welt!



Tauche ein in die faszinierende Welt der Python-Programmierung und nutze unser Glossar, um dich schneller zurechtzufinden als je zuvor. Unser Glossar ist deine Geheimwaffe im Dschungel der Python-Begriffe. Stell es dir vor wie eine Schatzkarte, die dir den Weg zu jedem Konzept, Modul oder Befehl in Python zeigt. Es ist deine digitale Schatztruhe, randvoll mit Erklärungen und Definitionen, die dir das Leben als Pythonista erleichtern.


Wie funktioniert das Glossar


Die Navigation im PythonWorld Glossar ist kinderleicht. Wenn du etwas Bestimmtes suchst, nutze einfach das Suchfeld oben. Magst du es gemütlicher, dann klicke auf einen Buchstaben in der Navigationsleiste von A bis Z, um alle Python-Schätze unter diesem Buchstaben zu entdecken.




A


Abstract Base Class (Abstrakte Basisklasse)

Definition:


Eine Abstract Base Class (ABC) ist eine Klasse in Python, die dazu dient, eine gemeinsame Schnittstelle für eine Gruppe von verwandten Klassen zu definieren. Sie enthält oft abstrakte Methoden, die von den abgeleiteten Klassen implementiert werden müssen.


Kontext in Python:


ABCs werden verwendet, um sicherzustellen, dass bestimmte Methoden in den abgeleiteten Klassen vorhanden sind und in einem bestimmten Format implementiert werden. Sie sind hilfreich, um Code zu strukturieren und sicherzustellen, dass Klassen bestimmte Verhaltensweisen implementieren.


Beispiele:


1. Definition einer Abstract Base Class:

Python Code

  from abc import ABC, abstractmethod

  class Shape(ABC):
      @abstractmethod
      def area(self):
          pass
      
      @abstractmethod
      def perimeter(self):
          pass
  

2. Abgeleitete Klasse von einer Abstract Base Class:

Python Code

  class Circle(Shape):
      def __init__(self, radius):
          self.radius = radius
      
      def area(self):
          return 3.14 * self.radius * self.radius
      
      def perimeter(self):
          return 2 * 3.14 * self.radius
  

Verwandte Bibliotheken


1. Vererbung (Inheritance)

2. Polymorphismus


Wichtige Hinweise:

  1. Abstract Base Classes sind ein Konzept in Python, das die Implementierung von Schnittstellen und abstrakten Methoden erleichtert.
  2. Es ist wichtig, die ABC-Module aus der Python-Standardbibliothek zu importieren, um Abstrakte Basisklassen zu erstellen.





AIOHTTP

Definition:


'aiohttp' ist eine asynchrone HTTP-Bibliothek für Python, die auf 'asyncio' aufbaut. Sie wird hauptsächlich für asynchrone Webanfragen und als Webframework verwendet.


Kontext in Python:


Da 'aiohttp' asynchrone Operationen unterstützt, eignet es sich gut für I/O-intensive Aufgaben wie Web-Scraping, API-Anfragen und andere Netzwerkanwendungen.


Beispiele:


1. Asynchrone GET-Anfrage:

Python Code

  import aiohttp
  import asyncio

  async def fetch(session, url):
      async with session.get(url) as response:
          return await response.text()

  async def main():
      async with aiohttp.ClientSession() as session:
          html = await fetch(session, 'https://www.example.com')
          print(html)

  asyncio.run(main())
  

2. POST-Anfrage:

Python Code

  async def fetch_post(session, url, payload):
      async with session.post(url, data=payload) as response:
          return await response.json()

  

Verwandte Bibliotheken


1. Requests

2. HTTPX

3. urllib


Wichtige Hinweise:

  1. Asynchrone Programmierung kann die Effizienz von I/O-Aufgaben erheblich steigern.
  2. Die Bibliothek unterstützt WebSockets und kann auch als asynchrones Webframework verwendet werden.





Algorithms

Definition:


Ein Algorithmus ist eine klar definierte, schrittweise Anleitung zur Lösung eines Problems oder zur Durchführung einer spezifischen Aufgabe. In der Programmierung werden Algorithmen verwendet, um Daten zu manipulieren, Ressourcen effizient einzusetzen und komplexe Aufgaben zu bewältigen.


Kontext in Python


Python bietet eine benutzerfreundliche Syntax und eine breite Palette an eingebauten Funktionen und Bibliotheken, die das Implementieren verschiedener Algorithmen vereinfachen. Ob es sich um Suchalgorithmen wie Binärsuche, Sortieralgorithmen wie Quicksort, oder komplexere Datenstrukturalgorithmen handelt – Python ist eine ausgezeichnete Wahl für die algorithmische Programmierung.


Beispiele


1. Sortierung: Der eingebaute 'sorted()'-Befehl in Python verwendet einen effizienten Sortieralgorithmus.

Python Code

  my_list = [3, 1, 4, 1, 5, 9]
  sorted_list = sorted(my_list)
  

2. Suche: Die index()-Methode führt eine lineare Suche durch.

Python Code

  element = 5
  index = my_list.index(element)

  

3. Rekursion: Der rekursive Algorithmus zur Berechnung der Fakultät einer Zahl.

Python Code

  def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)
  

Verwandte Bibliotheken


1. NumPy: Für komplexe numerische Algorithmen.

2. SciPy: Für wissenschaftliche und technische Berechnungen.

3. scikit-learn: Für Machine Learning-Algorithmen.


Wichtige Hinweise:

  1. Die Effizienz eines Algorithmus wird oft in Big O-Notation ausgedrückt, die die Performance in Bezug auf Zeit oder Speicherplatz beschreibt.





Annotations

Definition:


Annotations in Python dienen zur Hinzufügung von Metadaten zu Codeelementen wie Variablen, Funktionen und Klassen. Sie sind besonders nützlich für Typ-Hinweise, die die Lesbarkeit und Wartbarkeit des Codes verbessern können. Annotations wurden in Python 3.0 eingeführt und sind seit Python 3.5 mit dem 'typing'-Modul für Typ-Hinweise besonders hilfreich.


Hauptmerkmale:


Typ-Hinweise: Erlauben die Angabe erwarteter Datentypen für Funktionenparameter und Rückgabewerte.

Dokumentation: Annotations können zusätzliche Informationen für Entwickler bereitstellen.

Flexibilität: Annotations sind nicht beschränkt auf Typ-Hinweise und können für benutzerdefinierte Metadaten verwendet werden.


Beispiele


1. Funktion mit Typ-Hinweisen:

Python Code

  def greet(name: str) -> str:
      return f"Hello, {name}"

  

2. Komplexe Typ-Hinweise mit 'typing'-Modul:

Python Code

 from typing import List, Tuple

  def calculate_stats(numbers: List[int]) -> Tuple[float, float]:
      mean = sum(numbers) / len(numbers)
      variance = sum((x - mean) ** 2 for x in numbers) / len(numbers)
    ^ return mean, variance

  

3. Benutzerdefinierte Annotations:

Python Code

  def my_function(x: 'special_argument') -> 'important_result':
      return x * 2


  

Verwandte Konzepte


1. Docstrings: Ein weiteres Mittel zur Dokumentation von Code in Python.

2. Typing-Modul: Standardbibliothek-Modul für Typ-Hinweise.


Wichtige Hinweise:

  1. Annotations haben keine Laufzeitauswirkungen und dienen hauptsächlich Dokumentations- und Entwicklerunterstützungszwecken.





Associative Array (Assoziatives Array)

Definition:


Ein assoziatives Array, auch bekannt als Wörterbuch oder Dikt, ist eine Datenstruktur in Python, die Schlüssel-Wert-Paare speichert. In einem assoziativen Array ist jeder Wert mit einem eindeutigen Schlüssel verknüpft, der zur Abfrage und Aktualisierung des Werts verwendet wird.


Kontext in Python:


In Python wird die Datenstruktur, die assoziative Arrays repräsentiert, als "Dictionary" bezeichnet. Dictionaries ermöglichen den schnellen Zugriff auf Werte anhand ihrer Schlüssel und sind äußerst vielseitig in der Verwendung.


Beispiele:


1. Erstellen eines assoziativen Arrays (Dictionaries):

Python Code

  # Ein einfaches Wörterbuch erstellen
  person = {
      "Name": "John",
      "Alter": 30,
      "Stadt": "New York"
  }
  

2. Zugriff auf Werte in einem assoziativen Array:

Python Code

  # Zugriff auf den Wert mit dem Schlüssel "Name"
  name = person["Name"]
  

Verwandte Konzepte


1. Dictionary (Wörterbuch): In Python werden assoziative Arrays durch Dictionaries repräsentiert.


Wichtige Hinweise:

  1. Associative Arrays, oder Dictionaries in Python, sind nützlich, um Daten in Schlüssel-Wert-Paaren zu organisieren und abzurufen.
  2. Die Schlüssel in einem assoziativen Array müssen eindeutig sein.





API (Application Programming Interface)

Definition:


API steht für Application Programming Interface und ist ein Satz von Regeln und Protokollen, die es verschiedenen Softwareanwendungen ermöglichen, miteinander zu kommunizieren. In der Python-Welt werden APIs oft verwendet, um auf Webdienste zuzugreifen oder Bibliotheken und Frameworks zu integrieren.


Hauptmerkmale:


Datenzugriff: Erlaubt das Abrufen von Daten von Webservern oder Datenbanken.

Funktionszugriff: Bietet eine Schnittstelle zu den Funktionen einer bestimmten Software oder Bibliothek.

Modularität: Ermöglicht es Entwicklern, auf bestimmte Funktionen einer Anwendung zuzugreifen, ohne den gesamten Code verstehen zu müssen.


Beispiele


1. Verwendung der Requests-Bibliothek für HTTP-Anfragen

Python Code

  import requests

  response = requests.get('https://api.example.com/data')
  data = response.json()
  

2. Zugriff auf Twitter-API

Python Code

  import tweepy

  api = tweepy.API(auth)
  public_tweets = api.home_timeline()

  

Verwandte Konzepte


1. RESTful API: Ein Architekturstil für die Gestaltung netzwerkbasierter Software.

2. GraphQL: Eine moderne Abfrage-Sprache für APIs.

3. Web Scraping: Eine alternative Methode zum Datenzugriff, wenn keine API verfügbar ist.


Wichtige Hinweise:

  1. Die Nutzung von APIs kann den Entwicklungsprozess erheblich beschleunigen, jedoch ist es wichtig, die jeweiligen Nutzungsbedingungen und Rate-Limits zu beachten.





Array: Eigenschaften und Verwendung in Python

Definition:


Ein Array ist eine Sammlung von Elementen, die denselben Datentyp haben und in einer festgelegten Reihenfolge gespeichert sind. In Python werden Arrays vorrangig durch Listen repräsentiert, es gibt jedoch auch spezialisierte Bibliotheken wie NumPy, die effizientere Array-Implementierungen bieten.


Eigenschaften:


Gleicher Datentyp: Alle Elemente eines Arrays müssen denselben Datentyp haben.

Indexierung: Die Elemente können über einen Index, der bei 0 beginnt, zugegriffen werden.

Feste Größe: Die Größe eines Arrays ist bei der Erstellung festgelegt, kann jedoch mit speziellen Funktionen geändert werden.


Anwendung in Python


1. Python-ListenDer einfachste Weg, ein Array zu verwenden.

Python Code

 my_list = [1, 2, 3]
  

2. NumPy-ArraysVerwendet für wissenschaftliche Berechnungen.

Python Code

  import numpy as np
  my_array = np.array([1, 2, 3])
  

3. array-ModulEin eingebautes Modul für die Erstellung von Arrays.

Python Code

  from array import array
  my_array = array('i', [1, 2, 3])
  

Verwandte Konzepte


1. Multidimensionale Arrays: Arrays können mehr als eine Dimension haben, insbesondere mit NumPy.

2. Slicing: Für Machine Learning-Algorithmen.


Wichtige Hinweise:

  1. Performance: NumPy-Arrays sind oft effizienter als Python-Listen, insbesondere für große Datensätze und numerische Berechnungen.
  1. Typensicherheit: Das array-Modul und NumPy erzwingen Typensicherheit, was bei Python-Listen nicht der Fall ist.





Array Reshaping in Python

Definition:


Das Array Reshaping bezieht sich auf die Umgestaltung der Struktur eines Arrays, ohne dabei die tatsächlichen Daten zu ändern. Mit dieser Technik können Sie die Dimensionen eines bestehenden Arrays ändern, wobei die Gesamtanzahl der Elemente gleich bleibt. Dies ist vor allem in Bereichen wie der Datenanalyse und dem Maschinenlernen von Bedeutung.


Merkmale:


Formanpassung: Mit Reshaping können Sie die "Form" eines Arrays ändern. Dies ist beispielsweise bei der Umwandlung eines eindimensionalen Arrays in ein zweidimensionales Array hilfreich.

Erhalt der Daten: Beim Reshaping bleibt die Gesamtanzahl der Elemente im Array gleich, und die Daten werden nicht verändert.


Anwendung in Python


Die Standard-Python-Bibliothek bietet nur begrenzte Möglichkeiten für das Reshaping von Arrays. Bibliotheken wie NumPy unterstützen jedoch eine Vielzahl von Funktionen für das Reshaping.

Python Code

  # Beispiel mit NumPy
  import numpy as np
  array = np.array([1, 2, 3, 4, 5, 6])
  reshaped_array = array.reshape(2, 3)  # Ändert die Form zu 2 Zeilen und 3 Spalten
  

Verwandte Konzepte


1. Flatten: Umwandlung eines mehrdimensionalen Arrays in ein eindimensionales Array.

2. Ravel: Eine weitere Methode, um ein mehrdimensionales Array in ein eindimensionales Array zu transformieren.


Wichtige Hinweise:

  1. Die Gesamtanzahl der Elemente muss beim Reshaping gleich bleiben.
  1. Bibliotheken wie NumPy bieten leistungsfähige und effiziente Methoden für das Array Reshaping.





Array Slicing in Python

Definition:


Array Slicing ist ein Konzept in Python, das es ermöglicht, Teile eines Arrays oder einer Liste auszuschneiden. Mit anderen Worten, durch Slicing kann man eine Untermenge von Elementen extrahieren.


Eigenschaften:


Einfache Syntax: Die Slicing-Syntax ist einfach zu verwenden und zu verstehen, typischerweise im Format '[start:stop:step]'.

Flexibilität: Man kann Start-, Stopp- und Schrittgröße bestimmen, um die geschnittenen Teile nach Bedarf anzupassen.

Negatives Indexing: Slicing unterstützt auch negatives Indexing, um die Elemente von hinten zu zählen.


Anwendung in Python

In Python könnten Sie ein Array oder eine Liste wie folgt slicen:

Python Code

  my_array = [0, 1, 2, 3, 4, 5]
  sliced_array = my_array[1:4]  # Ergebnis wäre [1, 2, 3]
  

Beispiele


Eindimensionales Array Bei einer eindimensionalen Liste oder einem Array kann man einfach einen Bereich von Indizes angeben.

Mit Schrittgröße: Zum Beispiel 'my_array[::2]' würde jedes zweite Element auswählen.


Verwandte Konzepte


1. Multidimensionales Array Slicing: In Bibliotheken wie NumPy kann man mehrdimensionale Arrays slicen.

2. String Slicing: Das Slicing-Konzept ist auch auf Python-Strings anwendbar.


Wichtige Hinweise:

  1. Immutabilität: Ein Slice eines Arrays ist eine flache Kopie, die das Original-Array nicht verändert.
  1. Performance: Bei großen Datenmengen ist es oft effizienter, Array-Slicing mit NumPy oder ähnlichen Bibliotheken durchzuführen.





Argparse (Argument Parser)

Definition:


'argparse' ist eine Standardbibliothek in Python für das Parsen von Befehlszeilenoptionen, -argumenten und -unterbefehlen. Es bietet eine einfache Möglichkeit, benutzerfreundliche Befehlszeilenschnittstellen zu erstellen und macht es einfach, Fehlermeldungen oder Hilfetexte zu generieren.


Hauptmerkmale:


Flexibilität: Unterstützt Positional Arguments, Optional Arguments und sogar kompliziertere Use-Cases wie Argument-Gruppen oder exklusive Argumente.

Automatische Hilfsgenerierung: Erstellt automatisch gut formatierte und beschreibende Hilfe- und Fehlermeldungen.

Erweiterbarkeit: Man kann eigene Aktionen und Datentypen definieren.


Beispiele


1. Einfache Befehlszeilen-App mit 'argparse'

Python Code

  import argparse

  parser = argparse.ArgumentParser(description='My App')
  parser.add_argument('integers', metavar='N', type=int, nargs='+',
                      help='Integers to sum')
  parser.add_argument('--sum', dest='accumulate', action='store_const',
                      const=sum, default=max,
                      help='Sum the integers (default: find the max)')

  args = parser.parse_args()
  print(args.accumulate(args.integers))

  

2. Optionale Argumente hinzufügen

Python Code

  parser.add_argument('-f', '--file', help='The file to process')

  

Verwandte Konzepte


1. CLI (Command Line Interface): 'argparse' wird für die Erstellung von CLI-Anwendungen verwendet.

2. Sys Library: Bevor 'argparse' populär wurde, wurde oft die 'sys.argv'-Liste zur Handhabung von Befehlszeilenargumenten verwendet.


Wichtige Hinweise:

  1. Obwohl 'argparse' sehr mächtig ist, kann es für sehr komplexe CLI-Interfaces etwas sperrig werden. In solchen Fällen könnten Libraries wie 'click' oder 'fire' eine bessere Wahl sein.





Arithmetic (Arithmetik)

Definition:


In Python bezieht sich die Arithmetik auf die grundlegenden mathematischen Operationen, die mit Zahlen durchgeführt werden können. Diese schließen Addition, Subtraktion, Multiplikation, Division und weitere ein.


Hauptmerkmale:


Grundoperationen: Einfache arithmetische Operationen wie '+', '-', '*', '/'.

Modulo-Operation: Der '%'-Operator gibt den Rest einer Division zurück.

Potenzierung: Der '**'-Operator wird zur Potenzierung verwendet.


Beispiele


1. Addition und Subtraktion

Python Code

  a = 5 + 3  # Ergebnis ist 8
  b = 5 - 3  # Ergebnis ist 2
 

2. Multiplikation und Division

Python Code

  c = 5 * 3  # Ergebnis ist 15
  d = 5 / 3  // Ergebnis ist 1.6667...
  

3. Modulo und Potenzierung

Python Code

  e = 5 % 3  # Ergebnis ist 2
  f = 5 ** 3  # Ergebnis ist 125
  

Verwandte Konzepte


1. Data Types: Zahlen in Python können als Integers oder Floats dargestellt werden.

2. Math Library: Für komplexere mathematische Funktionen und Konstanten.


Wichtige Hinweise:

  1. Python unterstützt auch Floor Division ('//'), die die nächstkleinere ganze Zahl zurückgibt.
  1. Bei der Arbeit mit Floats ist Vorsicht geboten, da Rundungsfehler auftreten können.





Argument (Argument)

Definition:


Ein Argument ist ein Wert oder eine Variable, die an eine Funktion oder Methode übergeben wird, wenn sie aufgerufen wird. Argumente dienen dazu, Daten oder Informationen an eine Funktion zu übergeben, damit diese mit diesen Daten arbeiten kann.


Kontext in Python:


In Python werden Funktionen und Methoden häufig mit Argumenten aufgerufen. Diese Argumente werden innerhalb der Funktion verwendet, um Berechnungen durchzuführen, Ergebnisse zurückzugeben oder andere Aktionen auszuführen.


Beispiele:


1. Funktion mit einem Argument:

Python Code

  def greet(name):
      print("Hallo, " + name + "!")
  
  greet("Sascha")
  

2. Funktion mit mehreren Argumenten:

Python Code

  def add(x, y):
      return x + y
  
  result = add(5, 3)
  print(result)
  

Verwandte Konzepte


1. Parameter: Parameter sind Platzhalter für Argumente in einer Funktion oder Methode.


Wichtige Hinweise:

  1. Die Anzahl und Reihenfolge der Argumente müssen mit den Parametern in der Funktion übereinstimmen.
  2. Python unterstützt auch Standardargumente, die verwendet werden, wenn kein Wert für ein Argument bereitgestellt wird.





AST (Abstract Syntax Tree)

Definition:


Ein Abstract Syntax Tree (AST) ist eine hierarchische, baumförmige Repräsentation der Struktur eines Quellprogramms. Er wird in der Analysephase eines Compilers erzeugt und dient als Zwischenstufe für weitere Verarbeitungen des Codes.


Kontext in Python


In Python ist der AST über das eingebaute Modul ast zugänglich. Es ermöglicht die Manipulation und Analyse des Baumes für verschiedene Anwendungen wie Code-Generierung oder statische Code-Analyse.


Beispiele


Python Code

# Beispiel für die Erzeugung eines AST in Python
import ast

source_code = 'print("Hello, World!")'
tree = ast.parse(source_code)
        

Verwandte Konzepte


1. Syntax-Analyse

2. Compiler

3. Interpreter


Wichtige Hinweise:

  1. Die Manipulation eines AST kann komplexe Veränderungen am Programm ermöglichen, sollte aber mit Vorsicht verwendet werden.
  2. Ein tiefes Verständnis des AST ist für fortgeschrittene Compiler-Techniken erforderlich.





Async/Await

Definition:


Async/Await ist eine moderne Syntax zur Behandlung von asynchronen Operationen in Python. Sie ermöglicht es, asynchrone Funktionen zu schreiben, die wie synchrone Funktionen aussehen, jedoch nicht-blockierend sind.


Kontext in Python


Async/Await wird in Python durch die Schlüsselwörter async und await implementiert. Sie sind vor allem in Verbindung mit dem asyncio Modul sehr nützlich.


Beispiele


Python Code

# Beispiel für Async/Await in Python
import asyncio

async def my_function():
    print("Start")
    await asyncio.sleep(1)
    print("End")

asyncio.run(my_function())
        

Verwandte Konzepte


1. Eventloop

2. Concurrency

3. Multiprocessing


Wichtige Hinweise:

  1. async definiert eine asynchrone Funktion, aber sie wird erst ausgeführt, wenn sie mit await aufgerufen wird.
  2. Das await Schlüsselwort kann nur innerhalb einer asynchronen Funktion verwendet werden.





Asynchronous Processing

Definition:


Asynchronous Processing bezeichnet die Ausführung von Aufgaben in einer nicht-blockierenden Art und Weise. Das heißt, der Programmfluss wartet nicht darauf, dass eine Aufgabe abgeschlossen ist, bevor er zur nächsten übergeht.


Kontext in Python


In Python kann asynchrone Programmierung mit Hilfe des asyncio Moduls realisiert werden. Dies ermöglicht das Schreiben von nicht-blockierendem Code, der besonders für I/O-bound Aufgaben geeignet ist.


Beispiele


Python Code

import asyncio

async def hello_world():
    print("Hello")
    await asyncio.sleep(1)
    print("World")

if __name__ == "__main__":
    asyncio.run(hello_world())
        

Verwandte Konzepte


1. Multiprocessing: Für CPU-bound Aufgaben.

2. Threading: Eine andere Möglichkeit, parallele Ausführung zu erreichen.

3. Event Loop: Das Herzstück von asyncio, das die asynchrone Ausführung steuert.


Wichtige Hinweise:

  1. Die Nutzung von async und await Schlüsselwörtern ist erforderlich für asynchrone Programmierung in Python.
  2. Asynchrone Programme sind in der Regel effizienter bei der Ausführung von I/O-bound Aufgaben im Vergleich zu CPU-bound Aufgaben.





Asynchronous Programming (Async/Await)

Definition:


Asynchrone Programmierung ermöglicht es, mehrere Aufgaben quasi-gleichzeitig auszuführen, ohne dass eine die andere blockiert. In Python werden dafür die Schlüsselwörter async und await verwendet.


Kontext in Python


In Python wird asynchrone Programmierung hauptsächlich für I/O-Aufgaben und Netzwerkanfragen verwendet. Sie macht den Code nicht schneller, ermöglicht aber eine bessere Nutzung der Ressourcen.


Beispiele


Python Code

import asyncio

async def my_function():
    print("Start")
    await asyncio.sleep(1)
    print("End")

asyncio.run(my_function())
        

Verwandte Konzepte


1. Threading: Eine andere Form der parallelen Ausführung.

2. Multiprocessing: Für rechenintensive Aufgaben.

3. Event Loop: Der zentrale Mechanismus hinter der asynchronen Programmierung.


Wichtige Hinweise:

  1. Asynchrone Funktionen sollten immer mit await aufgerufen werden.
  2. Das asyncio-Modul bietet zahlreiche Funktionen und Klassen zur Unterstützung der asynchronen Programmierung.





Assignment Operators (Zuweisungsoperatoren)

Definition:


Zuweisungsoperatoren sind Symbole oder Zeichen in Python, die verwendet werden, um Werte einer Variablen zuzuweisen. Sie ermöglichen die Aktualisierung oder Änderung des Werts einer Variablen durch Zuweisung eines neuen Werts.


Kontext in Python:


In Python sind Zuweisungsoperatoren eine grundlegende Komponente, um Variablen mit Werten zu initialisieren oder Werte in Variablen zu aktualisieren. Sie werden häufig in Verbindung mit arithmetischen Ausdrücken und anderen operativen Aktionen verwendet.


Beispiele:


1. Zuweisung eines Werts an eine Variable:

Python Code

  x = 10  # Weist den Wert 10 der Variable x zu
  

2. Verwendung eines Zuweisungsoperators:

Python Code

  y = 5
  y += 3  # Äquivalent zu y = y + 3, erhöht den Wert von y um 3
  

Verwandte Konzepte


1. Operatoren: Operatoren sind Symbole oder Funktionen, die auf Werten arbeiten und in Ausdrücken verwendet werden.


Wichtige Hinweise:

  1. Python bietet verschiedene Zuweisungsoperatoren, darunter "+=", "-=", "*=", "/=", und andere, um Werte zu aktualisieren.
  2. Zuweisungsoperatoren sind in vielen Programmiersprachen eine wichtige Konstruktion zur Verwaltung von Variablen.





Attribute

Definition:


Ein Attribut ist eine Variable oder ein Datenelement, das zu einer Klasse oder einem Objekt gehört. In objektorientierten Programmiersprachen wie Python ermöglichen Attribute die Speicherung von Daten, die das Verhalten oder den Zustand eines Objekts definieren.


Kontext in Python


In Python werden Attribute über die Punkt-Notation zugegriffen und können sowohl auf Klassen- als auch auf Instanzebene definiert werden.


Beispiele


Python Code

# Beispiel: Attribute in Python
class Auto:
    farbe = "Rot"

mein_auto = Auto()
print(mein_auto.farbe)  # Ausgabe: Rot
        

Verwandte Konzepte


1. Klassen

2. Methoden

3. Vererbung


Wichtige Hinweise:

  1. Attribute können öffentlich, geschützt oder privat sein, abhängig von den Zugriffsmodifikatoren.
  2. Attribute können auch zur Laufzeit dynamisch hinzugefügt oder entfernt werden.





Automated Testing in Python

Definition:


Automatisiertes Testen in Python bezieht sich auf den Prozess, bei dem Skripte geschrieben werden, die Teile einer Anwendung automatisch testen, um sicherzustellen, dass sie wie erwartet funktionieren. Diese Tests können Unit-Tests, Integrationstests oder End-to-End-Tests sein.


Kontext in Python


Python bietet eine Reihe von Bibliotheken und Frameworks für automatisiertes Testen, darunter unittest, pytest und Selenium für Webanwendungen. Durch automatisiertes Testen können Entwickler schneller sicherstellen, dass ihre Codeänderungen keine Regressionen verursachen.


Beispiele


1. Unit Tests: Mit dem eingebauten 'unittest'-Modul können Entwickler einzelne Teile des Codes isoliert testen.

Python Code

  import unittest
  
  class TestStringMethods(unittest.TestCase):
  
      def test_upper(self):
          self.assertEqual('foo'.upper(), 'FOO')
  

2. Integration Tests: Mit 'pytest' kann man mehrere Komponenten einer Anwendung gemeinsam testen.

Python Code

  def test_addition():
      assert 1 + 1 == 2
  

Verwandte Bibliotheken


1. pytest

2. Selenium

3. unittest


Wichtige Hinweise:

  1. Automatisiertes Testen ist wichtig für die kontinuierliche Integration und Bereitstellung.
  2. Ein guter Testfall sollte klein, isoliert und wiederholbar sein.





Augmented Reality

Definition:


Augmented Reality (AR) ist eine interaktive Erfahrung, bei der digitale Informationen, meist in Form von Grafiken, Audio oder anderen Daten, in die reale Umgebung eingefügt werden. Im Gegensatz zur Virtual Reality, die eine vollständig digitale Umgebung schafft, erweitert die Augmented Reality die reale Welt mit digitalen Elementen.


Kontext in Technologie


AR wird in verschiedenen Anwendungen und Branchen eingesetzt, darunter Gaming, Medizin, Navigation und Bildung. Python-Bibliotheken wie ARToolKit und OpenCV können zur Entwicklung von AR-Anwendungen verwendet werden.


Beispiele


1. Pokemon Go: Ein bekanntes AR-Spiel, bei dem Spieler Pokemon in der realen Welt suchen und fangen.

2. AR-Navigation: Einige Navigations-Apps verwenden AR, um Richtungsanweisungen direkt auf die Straße zu projizieren.

Verwandte Technologien


1. Virtual Reality

2. Mixed Reality


Wichtige Hinweise:

  1. Augmented Reality erfordert in der Regel spezielle Hardware wie AR-Brillen oder Smartphones mit AR-Unterstützung.
  2. Die Technologie entwickelt sich schnell weiter und bietet immer realistischere Erfahrungen.





Beautiful Soup

Definition:


Beautiful Soup ist eine Python-Bibliothek, die für das Web-Scraping verwendet wird. Sie erstellt einen Parse-Baum aus einer Webseite und ermöglicht das einfache Navigieren und Manipulieren der HTML- und XML-Strukturen.


Kontext in Python:


In Python wird Beautiful Soup oft in Kombination mit der Bibliothek Requests verwendet, um Webinhalte zu extrahieren.


Beispiele


1. HTML-Inhalt einer Webseite abrufen:

Python Code

  import requests
  from bs4 import BeautifulSoup
  
  response = requests.get('https://www.example.com')
  soup = BeautifulSoup(response.text, 'html.parser')
  

2. HTML-Elemente finden:

Python Code

  title = soup.find('title')
  paragraphs = soup.find_all('p')
  

Verwandte Bibliotheken


1. Requests

2. lxml

3. Selenium


Wichtige Hinweise:

  1. Web-Scraping kann gegen die Nutzungsbedingungen bestimmter Websites verstoßen, daher ist Vorsicht geboten.
  2. Beautiful Soup selbst führt keine Webanfragen durch; dafür wird in der Regel die Requests-Bibliothek verwendet.





Booleans (Boolesche Werte)

Definition:


Booleans, auch als Boolesche Werte bezeichnet, sind eine grundlegende Datentyp in Python. Sie repräsentieren entweder den Wahrheitswert "True" (wahr) oder "False" (falsch). Booleans werden häufig in bedingten Ausdrücken und Logikoperationen verwendet.


Kontext in Python:


In Python spielen Booleans eine entscheidende Rolle in bedingten Anweisungen und Schleifen. Sie werden verwendet, um logische Ausdrücke zu bewerten und Entscheidungen im Code zu treffen.


Beispiele:


1. Verwendung von Booleans in bedingten Ausdrücken:

Python Code

  x = 10
  y = 5
  is_greater = x > y  # is_greater wird zu True, da x größer ist als y
  

2. Verwendung von Booleans in Logikoperationen:

Python Code

  a = True
  b = False
  result = a and b  # result wird zu False, da beide Werte False sind
  

Verwandte Konzepte


1. Bedingungen: Booleans werden häufig in bedingten Anweisungen verwendet.

2. Logische Operatoren: Logische Operatoren wie "and", "or" und "not" werden verwendet, um Booleans zu kombinieren.


Wichtige Hinweise:

  1. Booleans repräsentieren nur zwei Zustände: True (wahr) oder False (falsch).
  2. Booleans sind nützlich, um Entscheidungen im Code zu treffen und logische Ausdrücke zu bewerten.





B



Boolean Indexing

Definition:


Boolean Indexing ermöglicht die Auswahl von Array-Elementen auf der Grundlage von Bedingungen, die für jedes Element überprüft werden. Die Bedingung wird als boolescher Ausdruck formuliert.


Kontext in Python


In Python ist Boolean Indexing besonders nützlich in Kombination mit NumPy, wo man bedingte Abfragen auf Arrays ausführen kann.


Beispiel


Python Code

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
filtered_arr = arr[arr > 2]
        

Verwandte Konzepte


1. Reshaping: Änderung der Form eines Arrays.

2. Slicing: Teilausschnitte aus Arrays herausschneiden.


Wichtige Hinweise:

  1. Boolean Indexing erzeugt eine Kopie des Arrays und ändert nicht das ursprüngliche Array.





C









CLI (Command Line Interface)

Definition:


CLI steht für "Command Line Interface" und ist eine Benutzeroberfläche, die es dem Benutzer ermöglicht, Software-Anwendungen durch Texteingabe zu steuern. In Python werden CLI-Programme oft durch die Verwendung von Bibliotheken wie 'argparse', 'click' oder auch einfach durch das Lesen von Argumenten aus 'sys.argv' erstellt.


Hauptmerkmale:


Textbasiert: Alle Interaktionen erfolgen durch Textbefehle.

Skriptfähig: CLI-Befehle können in Skripten gespeichert und automatisiert werden..

Ressourcenschonend: Normalerweise weniger ressourcenintensiv als grafische Benutzeroberflächen (GUIs).


Beispiele


1. Einfaches CLI-Programm mit 'argparse'

Python Code

  import argparse

  parser = argparse.ArgumentParser(description="Ein einfaches CLI-Tool.")
  parser.add_argument("name", help="Ihr Name")

  args = parser.parse_args()
 (f"Hallo, {args.name}!")
  

2. CLI-Programm mit click

Python Code

  import click

  @click.command()
  @click.option('--name', default='Welt', help='Name der Person.')
  def hello(name):
      click.echo(f'Hallo, {name}!')

  if __name__ == '__main__':
      hello()
  

Verwandte Konzepte


1. Argparse Library: Eine Standardbibliothek für die Erstellung von CLI-Programmen.

2. Sys Library: Zum Lesen von Argumenten direkt aus 'sys.argv'.


Wichtige Hinweise:

  1. CLI-Programme sind besonders nützlich für Automatisierungsaufgaben und werden oft in serverbasierten Umgebungen eingesetzt, wo eine grafische Oberfläche nicht immer verfügbar ist.
  1. Die Erstellung von benutzerfreundlichen und gut dokumentierten CLIs kann die Benutzerakzeptanz und die Effizienz der Software erhöhen.





CPU (Central Processing Unit)

Definition:


Die CPU, oder Zentrale Verarbeitungseinheit, ist das Herz eines jeden Computersystems. Sie ist verantwortlich für die Ausführung der Instruktionen eines Computerprogramms.


Kontext in Python


In Python kann die CPU-Auslastung und -Information durch verschiedene Bibliotheken wie os und psutil abgerufen werden. Manchmal ist es wichtig, die CPU-Affinität für bestimmte Aufgaben einzustellen, um die Leistung zu optimieren.


Beispiele


Python Code

# Beispiel für den Zugriff auf CPU-Informationen in Python
import psutil

cpu_info = psutil.cpu_percent(interval=1)
print(f"CPU Auslastung: {cpu_info}%")
        

Verwandte Konzepte


1. Multiprocessing

2. Threading

3. Async/Await


Wichtige Hinweise:

  1. Die CPU-Auslastung sollte für leistungsintensive Aufgaben überwacht werden.
  2. Die Anzahl der CPU-Kerne kann die Wahl der Konkurrenzstrategie beeinflussen.








Concurrency

Definition:


Concurrency bezieht sich auf die Fähigkeit eines Systems, mehrere Aufgaben gleichzeitig zu bearbeiten. Dies kann durch Parallelität (gleichzeitige Ausführung) oder Asynchronität (zeitlich überlappend, aber nicht gleichzeitig) erreicht werden.


Kontext in Python


Python bietet verschiedene Möglichkeiten, um Concurrency zu erreichen, wie das threading Modul für Threading, das multiprocessing Modul für Multiprocessing und das asyncio Modul für asynchrone Programmierung.


Beispiele


Python Code

# Beispiel für asynchrone Programmierung mit asyncio
import asyncio

async def my_coroutine():
    print("Hello")
    await asyncio.sleep(1)
    print("World")

asyncio.run(my_coroutine())
        

Verwandte Konzepte


1. Threading

2. Multiprocessing

3. Asynchronous Processing


Wichtige Hinweise:

  1. Die Wahl der richtigen Concurrency-Methode hängt von der Art der Aufgaben ab: CPU-bound oder I/O-bound.
  2. Beim Umgang mit Concurrency ist auf Thread-Sicherheit und das Vermeiden von Deadlocks zu achten.





Conditionals (Bedingte Anweisungen)

Definition:


Bedingte Anweisungen, auch als Verzweigungen bezeichnet, sind in Python verwendetet Kontrollstrukturen, die es ermöglichen, verschiedene Codeblöcke basierend auf bestimmten Bedingungen auszuführen oder zu überspringen. Bedingte Anweisungen erlauben es, Entscheidungen im Code zu treffen.


Kontext in Python:


Bedingte Anweisungen sind unverzichtbar in Python und werden verwendet, um Code dynamischer und flexibler zu gestalten. Das "if-elif-else"-Konstrukt ist ein häufig verwendetes Beispiel für bedingte Anweisungen in Python.


Beispiele:


1. Verwendung von "if" und "else":

Python Code

  x = 10
  if x > 5:
      print("x ist größer als 5")
  else:
      print("x ist nicht größer als 5")
  

2. Verwendung von "if", "elif" und "else":

Python Code

  farbe = "rot"
  if farbe == "rot":
      print("Die Farbe ist rot")
  elif farbe == "blau":
      print("Die Farbe ist blau")
  else:
      print("Die Farbe ist weder rot noch blau")
  

Verwandte Konzepte


1. Booleans: Bedingte Anweisungen verwenden Booleans, um Entscheidungen zu treffen.

2. Logische Operatoren: Logische Operatoren wie "and", "or" und "not" werden häufig in bedingten Ausdrücken verwendet.


Wichtige Hinweise:

  1. Bedingte Anweisungen ermöglichen es, Code basierend auf bestimmten Bedingungen auszuführen oder zu überspringen.
  2. Das "if-elif-else"-Konstrukt erlaubt das Testen mehrerer Bedingungen in einer Reihenfolge.





Compilers

Definition:


Ein Compiler ist ein Softwareprogramm, das den Quellcode einer Programmiersprache in Maschinencode oder Bytecode übersetzt, der von einer Maschine ausgeführt werden kann. Dieser Prozess umfasst mehrere Phasen wie lexikalische Analyse, Syntaxanalyse und semantische Analyse.


Kontext in Python


In Python wird der Quellcode in der Regel nicht direkt in Maschinencode kompiliert, sondern in einen Bytecode übersetzt, der von der Python-Laufzeitumgebung interpretiert wird. Es gibt jedoch auch Möglichkeiten, Python-Code in Maschinencode zu kompilieren, z.B. mit Tools wie PyPy oder Cython.


Beispiele


Python Code

# Beispiel: Cython zur Kompilierung
from Cython.Build import cythonize
from setuptools import setup

setup(
    ext_modules = cythonize("mein_modul.pyx")
)
        

Verwandte Konzepte


1. Interpreters

2. Syntaxanalyse

3. Semantische Analyse


Wichtige Hinweise:

  1. Die Kompilierung erfolgt vor der Ausführung und kann daher die Laufzeitleistung verbessern.
  2. Ein Compiler kann auch Optimierungen vornehmen, um den generierten Code effizienter zu gestalten.





D



Datenstrukturen

Definition:


Datenstrukturen sind spezielle Formate für die Organisation und Speicherung von Daten auf einem Computer. Sie ermöglichen eine effiziente Datenmanipulation und einfache Zugriffsmethoden.


Kontext in Python


Python bietet verschiedene eingebaute Datenstrukturen wie Listen, Tupel, Sets und Dictionaries. Jede dieser Strukturen hat ihre eigenen Vorteile und Verwendungszwecke.


Beispiele


Python Code

# Liste
my_list = [1, 2, 3]

# Tupel
my_tuple = (1, 2, 3)

# Set
my_set = {1, 2, 3}

# Dictionary
my_dict = {'key': 'value'}
        

Verwandte Konzepte


1. Arrays: Ähnlich wie Listen, aber mit mehr Funktionalitäten durch externe Bibliotheken wie NumPy.

2. Linked Lists: Eine alternative Datenstruktur zu Arrays und Listen.


Wichtige Hinweise:

  1. Die Wahl der richtigen Datenstruktur kann die Effizienz eines Programms erheblich beeinflussen.





Data Types

Definition:


In Python bezeichnet der Begriff "Data Types" die verschiedenen Kategorien von Daten, die eine Variable halten kann. Diese Typen bestimmen, welche Operationen auf den Daten ausgeführt werden können und wie viel Speicher sie im Arbeitsspeicher einnehmen.


Haupttypen:


Integers: Ganze Zahlen, z.B. '5', '-3'.

Floats: Gleitkommazahlen, z.B. '3.14', '0.0'.

Strings: Text, z.B. "Hallo", 'Welt'.

Booleans: Logische Werte 'True' oder 'False'.

Lists: Geordnete, veränderbare Sammlungen, z.B. '[1, 2, 3]'.

Tuples: Geordnete, unveränderbare Sammlungen, z.B. '(1, 2, 3)'.

Dictionaries: Schlüssel-Wert-Paare, z.B. '{'key': 'value'}'.

Sets: Ungeordnete Sammlungen ohne Duplikate, z.B. '{1, 2, 3}'.


Beispiele


1. Integers

Python Code

  a = 5
  print(type(a))  # Output: <class 'int'>


  

2. Strings

Python Code

  b = "Hallo Welt"
print(type(b))  # Output: <class 'str'>

3. Listen

Python Code

  c = [1, 2, 3]
  print(type(c))  # Output: <class 'list'>
  

Verwandte Konzepte


1. Type Casting: Die Umwandlung eines Datentyps in einen anderen.

2. Mutable vs Immutable: Für Machine Learning-Algorithmen.


Wichtige Hinweise:

  1. Python ist eine dynamisch typisierte Sprache, was bedeutet, dass der Typ einer Variable zur Laufzeit bestimmt wird.
  1. Es ist guter Programmierstil, den passendsten Datentyp für den jeweiligen Anwendungsfall zu wählen.





Deep vs Shallow Copy

Definition:


Deep Copy und Shallow Copy sind zwei Arten des Kopierens von Datenstrukturen in Python. Während eine Shallow Copy nur die oberste Ebene kopiert, erstellt eine Deep Copy eine vollständige Kopie aller Verschachtelungen.


Kontext in Python


In Python kann eine Shallow Copy mit der Methode `copy()` oder der Slicing-Notation erzeugt werden. Eine Deep Copy erfordert die Verwendung der `copy`-Bibliothek und ihrer `deepcopy()`-Methode.


Beispiele


Python Code

# Shallow Copy
list1 = [1, 2, [3, 4]]
list2 = list1.copy()

# Deep Copy
import copy
list3 = copy.deepcopy(list1)
        

Verwandte Konzepte


1. Datenstrukturen: Allgemeines Verständnis der Datenstrukturen, die kopiert werden können.

2. Mutable vs Immutable: Verstehen der Veränderbarkeit von Datenstrukturen, die beeinflusst, wie sie kopiert werden.


Wichtige Hinweise:

  1. Deep Copies können bei komplexen und großen Datenstrukturen zeitaufwendig sein.





Deques

Definition:


Ein Deque (Double-Ended Queue) ist eine erweiterte Queue-Datenstruktur, die Einschübe und Löschungen an beiden Enden erlaubt.


Kontext in Python


Python bietet die `collections.deque` Bibliothek für die Implementierung von Deques. Sie sind effizienter als Listen für diese spezielle Anwendung.


Beispiele


Python Code

from collections import deque

# Deque erstellen
my_deque = deque([1, 2, 3])

# Elemente hinzufügen
my_deque.append(4)  # rechts hinzufügen
my_deque.appendleft(0)  # links hinzufügen

# Elemente entfernen
my_deque.pop()  # rechts entfernen
my_deque.popleft()  # links entfernen
        

Verwandte Konzepte


1. Queues: Einfache Queues, die nur das FIFO-Prinzip unterstützen.

2. Stacks: Stapel, die das LIFO-Prinzip verfolgen.


Wichtige Hinweise:

  1. Deques sind ideal für Anwendungen, bei denen Sie schnellen Zugriff auf beide Enden der Datenstruktur benötigen.





Docstrings

Definition:


Docstrings, kurz für "Documentation Strings", sind Zeichenketten, die als erste Anweisung in Modulen, Klassen, Methoden oder Funktionen in Python platziert werden. Sie dienen der Dokumentation des Codes und sind während der Laufzeit des Programms durch das __doc__ Attribut zugänglich.


Hauptmerkmale:


Dreifache Anführungszeichen: Docstrings werden üblicherweise in dreifachen Anführungszeichen eingeschlossen.

Zugänglichkeit: Können durch das '__doc__' Attribut eines Objekts zur Laufzeit abgerufen werden.

Automatische Dokumentation: Werden oft von Dokumentationstools wie Sphinx verwendet.


Beispiele


1. Funktions-Docstring:

Python Code

  def add(a, b):
      """Adds two numbers and returns the result."""
      return a + b

  

2. Klassen-Docstring:

Python Code

  class MyClass:
      """A simple example class."""
      def __init__(self, value):
          self.value = value
  

3. Abruf der Docstrings zur Laufzeit:

Python Code

  print(add.__doc__)

  

Verwandte Konzepte


1. Annotations: Ein anderes Mittel, um zusätzliche Informationen im Code bereitzustellen.

2. Sphinx: Ein Dokumentationsgenerator, der Docstrings nutzt.

3. PEP 257: Der Python Enhancement Proposal, der den Stil von Docstrings definiert.


Wichtige Hinweise:

  1. Die Verwendung von Docstrings ist eine gute Praxis, um den Code besser verständlich und wartbar zu machen.





doctest

Definition:


doctest ist ein Python-Modul, das in der Python-Standardbibliothek enthalten ist. Es ermöglicht das Schreiben von Tests als interaktive Beispiele in Docstrings von Modulen, Klassen oder Funktionen.


Kontext in Python:


doctest ist nützlich, um sicherzustellen, dass Beispiele in der Dokumentation korrekt sind und weiterhin funktionieren, wenn der Code geändert wird. Es kann auch zur automatischen Generierung von Dokumentation aus den Tests verwendet werden.


Beispiele:


1. Doctest in einer Funktion:

Python Code

  def add(a, b):
      """
      This function adds two numbers.

      >>> add(2, 3)
      5
      >>> add(5, 7)
      12
      """
      return a + b
  

2. Doctest in einer Modul-Docstring:

Python Code

  """
  This module provides mathematical operations.

  Example:
  >>> add(2, 3)
  5
  >>> subtract(5, 3)
  2
  """
  def add(a, b):
      return a + b

  def subtract(a, b):
      return a - b
  

Verwandte Bibliotheken


1. pytest

2. unittest

3. Selenium


Wichtige Hinweise:

  1. Doctests können leicht durch Hinzufügen von Beispielen zur Dokumentation erstellt werden.
  2. Die Module 'doctest' und 'unittest' bieten verschiedene Ansätze für das Testen von Python-Code.





Dictionary (Wörterbuch)

Definition:


Ein Dictionary (Wörterbuch) ist eine in Python verwendete Datenstruktur, die es ermöglicht, Schlüssel-Wert-Paare zu speichern und abzurufen. Jeder Wert im Dictionary ist mit einem eindeutigen Schlüssel verknüpft, der zur Identifizierung und zum Abrufen des Werts verwendet wird.


Kontext in Python:


In Python werden Dictionaries häufig verwendet, um Daten effizient zu organisieren, insbesondere wenn es darum geht, auf Informationen zuzugreifen, die aufgrund ihrer Schlüssel eindeutig identifiziert werden können. Dictionaries sind eine unverzichtbare Datenstruktur für die Arbeit mit assoziativen Arrays.


Beispiele:


1. Erstellen eines Dictionaries:

Python Code

  # Ein einfaches Dictionary erstellen
  person = {
      "Name": "John",
      "Alter": 30,
      "Stadt": "New York"
  }
  

2. Zugriff auf Werte in einem Dictionary:

Python Code

  # Zugriff auf den Wert mit dem Schlüssel "Name"
  name = person["Name"]
  

Verwandte Konzepte


1. Associative Array (Assoziatives Array): Dictionaries in Python sind eine Implementierung von assoziativen Arrays.


Wichtige Hinweise:

  1. Dictionaries sind in Python äußerst vielseitig und werden häufig verwendet, um Daten in Form von Schlüssel-Wert-Paaren zu organisieren.
  2. Die Schlüssel in einem Dictionary müssen eindeutig sein, da sie zur Identifizierung von Werten verwendet werden.





E



Encapsulation (Kapselung)

Definition:


Kapselung ist ein weiteres Kernelement der objektorientierten Programmierung, das den Zugriff auf bestimmte Teile eines Objekts einschränkt. Durch das Setzen von Zugriffsmodifikatoren kann gesteuert werden, welche Teile der Klasse von außen zugänglich sind.


Kontext in Python


In Python wird Kapselung meist durch die Verwendung von Underscores erreicht, um eine Variable oder Methode als privat zu kennzeichnen. Python hat jedoch keine strengen Zugriffsmodifikatoren wie private oder public, wie es in anderen Sprachen der Fall ist.


Beispiele


Python Code

class MyClass:
    def __init__(self):
        self.public_variable = "I'm public!"
        self._private_variable = "I'm somewhat private."

    def get_private_variable(self):
        return self._private_variable

obj = MyClass()
print(obj.public_variable)  # Output: I'm public!
print(obj.get_private_variable())  # Output: I'm somewhat private.
        

Verwandte Konzepte


1. Klassen: Grundbausteine der Kapselung.

2. Vererbung: Kapselung spielt bei der Zugriffssteuerung eine Rolle.

3. Polymorphismus: Kapselung ermöglicht flexibleren Code.


Wichtige Hinweise:

  1. Das Prinzip "Bevorzuge Komposition gegenüber Vererbung" kann die Kapselung erleichtern.
  2. Das Kapselungsprinzip unterstützt das SOLID-Prinzip der Softwareentwicklung.





Eventloop

Definition:


Der Eventloop ist eine Programmstruktur, die darauf wartet, dass Ereignisse oder Daten von einer externen Quelle empfangen werden, und sie dann entsprechend verarbeitet. Es ist das Herzstück jeder asynchronen Anwendung.


Kontext in Python


In Python wird der Eventloop hauptsächlich durch das asyncio Modul implementiert. Mit diesem Modul können asynchrone I/O-Aufgaben, wie z.B. das Lesen oder Schreiben von Dateien, Netzwerkanfragen usw., effizient gehandhabt werden.


Beispiele


Python Code

# Ein einfaches Beispiel für einen Eventloop mit asyncio
import asyncio

async def main():
    print('Hello')
    await asyncio.sleep(1)
    print('World')

asyncio.run(main())
        

Verwandte Konzepte


1. Async/Await

2. Concurrency

3. Threading


Wichtige Hinweise:

  1. Der Eventloop sollte niemals blockiert werden; ansonsten können keine anderen asynchronen Aufgaben ausgeführt werden.
  2. Beim Einsatz mehrerer Eventloops in einem Projekt ist Vorsicht geboten, um Konflikte zu vermeiden.





F



Fileoperations (Dateioperationen): Wie man Dateien in Python öffnet, liest und schreibt

Definition:


Dateioperationen beziehen sich auf die Verwendung von Python, um Dateien auf Ihrem Dateisystem zu öffnen, zu lesen und zu schreiben. Dies ist ein wichtiger Aspekt der Programmierung, da er es ermöglicht, Daten aus Dateien zu lesen oder in Dateien zu schreiben, um Informationen zu speichern oder abzurufen.


Kontext in Python:


Python bietet eine Vielzahl von Funktionen und Bibliotheken, die das Arbeiten mit Dateien einfach und effizient machen. Die Verwendung von Dateioperationen ist in Anwendungen weit verbreitet, bei denen Daten dauerhaft gespeichert oder geladen werden müssen.


Beispiele:


1. Öffnen einer Datei zum Lesen:

Python Code

  with open("meine_datei.txt", "r") as datei:
      inhalt = datei.read()
      print(inhalt)
  

2. Öffnen einer Datei zum Schreiben:

Python Code

  with open("neue_datei.txt", "w") as datei:
      datei.write("Dies ist ein Beispieltext.")
  

Verwandte Konzepte


1. Ein- und Ausgabe (I/O): Dateioperationen sind ein wichtiger Teil der Ein- und Ausgabe in Python.

2. Ausnahmen (Exceptions): Bei Dateioperationen können Fehler auftreten, die behandelt werden müssen.


Wichtige Hinweise:

  1. Das Öffnen und Schließen von Dateien sollte immer in einem "with"-Block erfolgen, um sicherzustellen, dass die Datei ordnungsgemäß geschlossen wird.
  2. Es gibt verschiedene Modi, in denen eine Datei geöffnet werden kann, z. B. zum Lesen ("r"), Schreiben ("w") oder Anhängen ("a").





Flatten

Definition:


Das "Flatten" eines Arrays bezieht sich auf den Prozess der Umwandlung eines mehrdimensionalen Arrays in ein eindimensionales Array.


Kontext in Python


In Python kann das "Flatten" eines Arrays mithilfe von Methoden wie flatten() oder ravel() in der NumPy-Bibliothek erreicht werden.


Beispiel


Python Code

import numpy as np

two_dim_array = np.array([[1, 2], [3, 4]])
flattened_array = two_dim_array.flatten()

        

Verwandte Konzepte


1. Reshaping: Ändern der Form eines Arrays.

2. Slicing: Teilausschnitte aus Arrays herausnehmen.


Wichtige Hinweise:

  1. flatten() gibt ein neues Array zurück, während ravel() versucht, das Original-Array zu verwenden, wenn möglich.





Functions (Funktionen)

Definition:


Eine Funktion ist ein wiederverwendbarer Codeblock, der eine bestimmte Aufgabe ausführt. Funktionen können Parameter akzeptieren und einen Wert zurückgeben.


Kontext in Python


In Python können Funktionen mit dem Schlüsselwort def definiert werden. Python bietet auch eine Vielzahl von eingebauten Funktionen wie print(), len() und viele mehr.


Beispiele


Python Code

def greet(name):
    return "Hallo " + name

# Funktion aufrufen
print(greet("Sascha"))  # Output: Hallo Sascha
        

Verwandte Konzepte


1. Variablen: Funktionen können Variablen nutzen und modifizieren.

2. Klassen: Funktionen können auch als Methoden innerhalb von Klassen definiert werden.

3. Scope: Der Geltungsbereich einer Variable kann durch Funktionen beeinflusst werden.


Wichtige Hinweise:

  1. Funktionen sollten idealerweise eine einzige Aufgabe erfüllen (Single Responsibility Principle).
  2. Parameter sollten sinnvoll benannt und typisiert sein, um die Lesbarkeit und Wartbarkeit zu verbessern.





for loop (for-Schleife)

Definition:


Eine for-Schleife ist eine Art von Schleife in Python, die verwendet wird, um über eine Sequenz von Elementen zu iterieren, wie z. B. eine Liste, ein Tupel oder einen String. Die for-Schleife führt eine bestimmte Aktion für jedes Element in der Sequenz aus.


Kontext in Python:


Die for-Schleife ist eine der häufigsten Schleifenarten in Python und wird verwendet, um durch Sammlungen von Elementen zu gehen und Operationen auf jedes Element anzuwenden. Sie ist besonders nützlich, wenn du genau wissen möchtest, wie viele Iterationen du durchführen möchtest.


Beispiele:


1. for-Schleife zum Durchlaufen einer Liste:

Python Code

  zahlen = [1, 2, 3, 4, 5]
  for zahl in zahlen:
      print(zahl)
  

2. for-Schleife zum Durchlaufen eines Strings:

Python Code

  text = "Python"
  for buchstabe in text:
      print(buchstabe)
  

Verwandte Konzepte


1. Iteration: Die for-Schleife ermöglicht die Iteration durch Sequenzen.

2. Schleifen: Die for-Schleife ist eine Art von Schleife in Python.


Wichtige Hinweise:

  1. Die for-Schleife ist besonders nützlich, um durch Listen, Tupel oder Strings zu iterieren und Operationen auf jedes Element anzuwenden.
  2. Die Variable, die in der for-Schleife verwendet wird (z. B. "zahl" oder "buchstabe" in den Beispielen), nimmt in jeder Iteration den Wert eines Elements aus der Sequenz an.





G



GraphQL

Definition:


GraphQL ist eine Abfragesprache für APIs, entwickelt von Facebook im Jahr 2015, die eine effizientere, stärker typisierte und flexiblere Alternative zu REST darstellt. In Python kann GraphQL durch verschiedene Bibliotheken wie 'Graphene' implementiert werden.


Schema: Definiert den Typ und die Form der Daten, die abgerufen werden können.


Query: Eine Anfrage, um Daten vom Server zu lesen.

Mutation: Eine Anfrage, um Daten auf dem Server zu verändern.

Resolver: Funktionen, die die tatsächliche Logik für das Abrufen oder Verändern von Daten enthalten.


Python-Bibliotheken


GrapheneEine der bekanntesten Bibliotheken zur Implementierung von GraphQL in Python.

AriadneEine weitere Bibliothek, die den Fokus auf eine einfachere Implementierung legt.


Verwendung in Python

Python Code

  from graphene import ObjectType, String, Schema

  class Query(ObjectType):
      hello = String()

      def resolve_hello(root, info):
          return "World"

  schema = Schema(query=Query)
  

Verwandte Konzepte


1. API: GraphQL ist eine von mehreren Möglichkeiten, eine API zu erstellen und zu nutzen.

2. JSON: Die Abfrageantworten sind typischerweise im JSON-Format.


Wichtige Hinweise:

  1. Effizienz: Mit GraphQL können Clients spezifisch angeben, welche Daten sie benötigen, was oft zu effizienteren Abfragen führt.
  1. Typsicherheit: GraphQL-Schemata sind stark typisiert, was die Möglichkeit für Fehler reduziert.





H



HTTP

Definition:


HTTP (HyperText Transfer Protocol) ist das Protokoll, das zur Übertragung von Daten über das World Wide Web verwendet wird. Es definiert, wie Nachrichten zwischen Client und Server formatiert und übertragen werden.


Kontext in Python:


In Python können HTTP-Anfragen und -Antworten mit verschiedenen Bibliotheken wie 'requests', 'httpx', 'urllib' und 'aiohttp' behandelt werden.


Beispiele:


1. GET-Anfrage mit 'requests':

Python Code

  import requests

  response = requests.get('https://www.example.com')
  print(response.text)
  

2. POST-Anfrage mit 'httpx':

Python Code

  import httpx

  data = {'key': 'value'}
  response = httpx.post('https://www.example.com', data=data)
  print(response.text)
  

Verwandte Bibliotheken


1. Requests

2. HTTPX

3. AIOHTTP


Wichtige Hinweise:

  1. HTTP/2 und HTTP/3 sind neuere Versionen des Protokolls mit verbesserten Funktionen.
  2. HTTPS ist eine sichere Version von HTTP, die Verschlüsselung verwendet.





HTTPX

Definition:


HTTPX ist eine voll ausgestattete HTTP-Client-Bibliothek für Python 3, die synchrone und asynchrone Anfragen unterstützt. Die Bibliothek bietet Verbindungs-Pooling, Keep-Alive und HTTP/2-Unterstützung.


Kontext in Python:


HTTPX kann als moderner Ersatz für 'requests' angesehen werden, insbesondere wenn man asynchrone Programmierung benötigt. Es ist besonders nützlich für Microservice-Architekturen und Websockets.


Beispiele:


1. Asynchrone GET-Anfrage:

Python Code

  import httpx
  import asyncio

  async def fetch_data():
      async with httpx.AsyncClient() as client:
          response = await client.get('https://www.example.com')
          print(response.text)

  asyncio.run(fetch_data())
  

2. Synchrone POST-Anfrage:

Python Code

  import httpx

  data = {'key1': 'value1', 'key2': 'value2'}
  response = httpx.post('https://httpbin.org/post', data=data)
  print(response.json())
  

Verwandte Bibliotheken


1. Requests

2. Aiohttp

3. urllib


Wichtige Hinweise:

  1. HTTPX ist besonders nützlich für moderne Python-Web-Frameworks, die asynchrone Programmierung unterstützen.
  2. Die Bibliothek kann auch für Websockets und andere erweiterte HTTP-Anwendungsfälle verwendet werden.





I



Inheritance (Vererbung)

Definition:


Vererbung ist ein Schlüsselkonzept der objektorientierten Programmierung, das es ermöglicht, eine neue Klasse auf der Grundlage einer bestehenden Klasse zu erstellen. Die neue Klasse erbt Attribute und Methoden der Elternklasse und kann zusätzliche Eigenschaften oder überschriebene Methoden enthalten.


Kontext in Python


In Python wird Vererbung durch die Angabe der Elternklasse in Klammern direkt nach dem Klassennamen realisiert. Die Methode super() kann verwendet werden, um auf die Elternklasse zuzugreifen.


Beispiele


Python Code

class Animal:
    def make_sound(self):
        return "Some generic sound"

class Dog(Animal):
    def make_sound(self):
        return "Woof!"

my_animal = Animal()
my_dog = Dog()

print(my_animal.make_sound())  # Output: Some generic sound
print(my_dog.make_sound())  # Output: Woof!
        

Verwandte Konzepte


1. Klassen: Die Grundlage für Vererbung.

2. Polymorphismus: Die Fähigkeit, eine Methode in einer abgeleiteten Klasse zu überschreiben.

3. Kapselung: Einschränkung des direkten Zugriffs auf einige Komponenten eines Objekts.


Wichtige Hinweise:

  1. Python unterstützt sowohl einfache als auch mehrfache Vererbung.
  2. Das Prinzip der "is-a"-Beziehung sollte in der Vererbung beachtet werden.





Interpreters

Definition:


Ein Interpreter ist ein Programm, das den Quellcode einer Programmiersprache in Echtzeit interpretiert und ausführt, anstatt ihn vorher in Maschinencode oder Bytecode zu kompilieren. Dies erlaubt eine schnellere Entwicklung, führt jedoch oft zu einer langsameren Ausführungszeit im Vergleich zu kompilierten Sprachen.


Kontext in Python


Python ist eine interpretierte Sprache, was bedeutet, dass der Python-Code bei der Ausführung durch einen Interpreter geht. Dies ermöglicht eine einfachere Fehlersuche und eine schnellere Entwicklung, kann jedoch die Laufzeiteffizienz beeinträchtigen.


Beispiele


Python Code

# Beispiel: Python-Interpreter
print("Hallo, Welt!")
        

Verwandte Konzepte


1. Compilers

2. Lexikalische Analyse

3. Semantische Analyse


Wichtige Hinweise:

  1. Interpreter sind besonders nützlich in der Entwicklungsphase, da sie eine schnellere Iteration ermöglichen.
  2. Ein Interpreter führt den Code Zeile für Zeile aus, was die Fehlersuche erleichtert.





Immutable vs Mutable

Definition:


Immutable und Mutable beziehen sich auf die Eigenschaft einer Datenstruktur, ob sie nach ihrer Erstellung verändert werden kann oder nicht. Immutable (unveränderlich) bedeutet, dass die Datenstruktur nicht verändert werden kann, während Mutable (veränderlich) das Gegenteil ist.


Kontext in Python


In Python sind einige der eingebauten Datentypen immutable (z.B. Strings, Tupel), während andere mutable sind (z.B. Listen, Wörterbücher).


Beispiele


Python Code

# Immutable
my_string = "Hello"
# my_string[0] = 'h'  # Would raise an error

# Mutable
my_list = [1, 2, 3]
my_list[0] = 0  # Valid operation
        

Verwandte Konzepte


1. Datentypen: Verschiedene Arten von Daten, die in Python verwendet werden.

2. Variablen: Container zum Speichern von Daten.

3. Speicherverwaltung: Wie Python Speicher für Variablen zuweist und verwaltet.


Wichtige Hinweise:

  1. Immutable Datentypen sind in der Regel sicherer und einfacher zu handhaben, aber sie können weniger flexibel sein.
  2. Mutable Datentypen sind flexibler, können aber zu unerwarteten Verhaltensweisen führen, wenn sie nicht sorgfältig behandelt werden.





Iteration

Definition:


Iteration ist der Prozess des schrittweisen Durchlaufens oder Wiederholens von Elementen in einer Sequenz, wie einer Liste oder einem String, um auf jedes Element zuzugreifen oder eine bestimmte Aufgabe für jedes Element auszuführen. In Python werden Schleifen wie die "for"-Schleife verwendet, um Iterationen durchzuführen.


Kontext in Python:


Iteration ist ein grundlegendes Konzept in Python und wird häufig verwendet, um durch Listen, Tupel, Strings oder andere Sequenzen zu gehen. Es ermöglicht die Verarbeitung von Daten und die Ausführung von Code für jedes Element in der Sequenz.


Beispiele:


1. Verwendung der "for"-Schleife zur Iteration durch eine Liste:

Python Code

  zahlen = [1, 2, 3, 4, 5]
  for zahl in zahlen:
      print(zahl)
  

2. Verwendung der "for"-Schleife zur Iteration durch einen String:

Python Code

  text = "Python"
  for buchstabe in text:
      print(buchstabe)
  

Verwandte Konzepte


1. Schleifen: Schleifen ermöglichen Iterationen, um Codeblöcke wiederholt auszuführen.

2. for-Schleife: Die "for"-Schleife wird häufig für Iterationen in Python verwendet.


Wichtige Hinweise:

  1. Iteration ist nützlich, um durch Sequenzen von Elementen zu gehen und Operationen für jedes Element auszuführen.
  2. Die "for"-Schleife ist eine der gängigsten Methoden zur Durchführung von Iterationen in Python.





J



Jupyter Notebook

Definition:


Jupyter Notebook ist eine Open-Source-Webanwendung, die es erlaubt, interaktive Notizbücher mit Code, Gleichungen, Visualisierungen und erzählendem Text zu erstellen. Es ist ein beliebtes Werkzeug für Data Science, maschinelles Lernen, wissenschaftliche Forschung und pädagogische Zwecke.


Hauptmerkmale:


Interaktivität: Führen Sie Codeblöcke in Echtzeit aus und sehen Sie die Ergebnisse sofort..

Mehrsprachige Unterstützung: Neben Python werden auch viele andere Programmiersprachen wie R, Julia und Scala unterstützt.

Rich Outputs: Integration von HTML, Bildern, Videos, LaTeX und benutzerdefinierten MIME-Typen.

Erweiterbarkeit: Unterstützt eine Vielzahl von Erweiterungen und Plugins.


Beispiele


1. Installation und Start

Python Code

 pip install notebook
 jupyter notebook

  

2. Code-Ausführung

Python Code

  # In einer Jupyter-Notebook-Zelle
  print("Hallo Welt!")

  

3. Datavisualisierung

Python Code

  import matplotlib.pyplot as plt
  plt.plot([1, 2, 3], [1, 4, 9])
  plt.show()
 
  

Verwandte Konzepte


1. Pandas: Bietet datenanalytische Funktionen und verwendet NumPy unter der Haube.

2. Matplotlib: Für die Datenvisualisierung, arbeitet gut mit NumPy zusammen.

3. Jupiter Lab: Für die Datenvisualisierung, arbeitet gut mit NumPy zusammen.


Wichtige Hinweise:

  1. Jupyter Notebooks sind großartig für die Prototypenentwicklung und explorative Datenanalyse, aber sie sind nicht ideal für die Produktion oder den Einsatz von Software.





Jupyter Lab

Definition:


Jupyter Lab ist die nächste Generation der Jupyter Notebook-Umgebung und bietet eine modularere und erweiterbare Benutzeroberfläche. Es ist ebenfalls eine Open-Source-Webanwendung und unterstützt die Ausführung und Bearbeitung von Notebooks, Texteditoren, Terminals und benutzerdefinierten Komponenten in einer flexiblen und integrierten Umgebung.


Hauptmerkmale:


Modulare Architektur: Erlaubt es, mehrere Dokumente und Aktivitäten nebeneinander in Tabs oder geteilten Ansichten zu organisieren.

Erweiterbarkeit: Die Umgebung kann durch eine Vielzahl von Erweiterungen und Plugins angepasst werden.

Mehrsprachige Unterstützung: Wie bei Jupyter Notebooks können auch hier mehrere Programmiersprachen verwendet werden.

Drag-and-Drop-Oberfläche: Erleichtert die Navigation und Organisation Ihrer Arbeitsbereiche.


Beispiele


1. Installation und Start

Python Code

 pip install jupyterlab
 jupyter lab

  

2. Code-Ausführung

Python Code

  # In einer Jupyter Lab-Zelle
  print("Hallo Jupyter Lab!")

  

3. Dateiverwaltung:

Nutzt den eingebauten Dateibrowser zum Öffnen, Schließen und Organisieren von Dokumenten.

Verwandte Konzepte


1. Jupyter Notebook: Pandas wird oft in Jupyter Notebooks für interaktive Datenanalysen genutzt.

2.Pandas: Bietet datenanalytische Funktionen und verwendet NumPy unter der Haube.

3. Matplotlib: Für die Datenvisualisierung, arbeitet gut mit NumPy zusammen.

Wichtige Hinweise:

  1. Jupyter Notebooks sind großartig für die Prototypenentwicklung und explorative Datenanalyse, aber sie sind nicht ideal für die Produktion oder den Einsatz von Software.





K



Klassen

Definition:


Eine Klasse ist ein Bauplan für Objekte und stellt eine der Grundlagen der objektorientierten Programmierung dar. Sie definiert Eigenschaften (Attribute) und Verhaltensweisen (Methoden), die ihre Instanzen haben werden.


Kontext in Python


In Python werden Klassen mit dem Schlüsselwort class definiert. Die Methoden innerhalb einer Klasse nehmen einen speziellen ersten Parameter, in der Regel self, der auf das Objekt selbst verweist.


Beispiele


Python Code

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        return "Woof!"

my_dog = Dog("Fido")
print(my_dog.name)
print(my_dog.bark())
        

Verwandte Konzepte


1. Objekte: Instanzen einer Klasse.

2. Vererbung: Ein Mechanismus, um neue Klassen auf der Grundlage bestehender Klassen zu erstellen.

3. Polymorphismus: Die Fähigkeit, in verschiedenen Formen aufzutreten.


Wichtige Hinweise:

  1. Der Konstruktor __init__ wird aufgerufen, wenn ein neues Objekt der Klasse erzeugt wird.
  2. Python unterstützt sowohl einfache als auch mehrfache Vererbung.





L



Lexical Analysis

Definition:


Die lexikalische Analyse ist der erste Schritt in der Verarbeitungskette eines Compilers oder Interpreters. In dieser Phase wird der Quellcode in Tokens zerlegt, die die atomaren Bestandteile der Sprache darstellen (z.B. Variablennamen, Operatoren).


Kontext in Python


In Python wird die lexikalische Analyse automatisch durchgeführt, wenn ein Skript ausgeführt wird. Der Python-Interpreter zerlegt den Code in Tokens, die dann in der Syntaxanalyse und den nachfolgenden Phasen weiter verarbeitet werden.


Beispiele


Python Code

# Beispiel: Lexikalische Elemente in einer Python-Anweisung
# "if", "x", "<", "10", ":", "print", "(", "'Hello'", ")"
        

Verwandte Konzepte


1. Syntaxanalyse

2. Semantische Analyse

3. Compiler


Wichtige Hinweise:

  1. Die lexikalische Analyse ist grundlegend für die spätere Verarbeitung des Codes und muss daher präzise durchgeführt werden.
  2. Fehler in dieser Phase führen oft zu Syntaxfehlern in den späteren Phasen der Codeverarbeitung.





Libraries (Bibliotheken)

Definition:


In Python bezieht sich der Begriff "Bibliotheken" auf Sammlungen von Modulen und Funktionen, die zusätzliche Funktionalität bieten und in verschiedenen Anwendungen wiederverwendet werden können. Bibliotheken ermöglichen es Entwicklern, auf bereits implementierte Codeabschnitte zuzugreifen, um Zeit zu sparen und die Entwicklung zu beschleunigen.


Kontext in Python:


Python verfügt über eine umfangreiche Sammlung von Standardbibliotheken, die in jeder Python-Installation enthalten sind. Darüber hinaus gibt es eine Vielzahl von Drittanbieterbibliotheken, die von der Python-Community entwickelt und zur Verfügung gestellt werden. Diese Bibliotheken decken verschiedene Anwendungsbereiche ab, einschließlich Datenanalyse, Webentwicklung, künstliche Intelligenz und mehr.


Beispiele:


1. Verwenden der math-Bibliothek für mathematische Operationen:

Python Code

  import math
  ergebnis = math.sqrt(25)  # Berechnet die Quadratwurzel von 25
  

2. Verwenden der requests-Bibliothek zum Senden von HTTP-Anfragen:

Python Code

  import requests
  antwort = requests.get("https://example.com")
  

Verwandte Konzepte


1. Module: Bibliotheken bestehen aus Modulen, die in Python-Dateien organisiert sind.

2. Drittanbieterbibliotheken: Dies sind Bibliotheken, die von der Python-Community entwickelt werden und nicht Teil der Standardbibliothek sind.


Wichtige Hinweise:

  1. Die Verwendung von Bibliotheken ist eine bewährte Methode, um häufig verwendeten Code wiederzuverwenden und die Entwicklungseffizienz zu steigern.
  2. Die Python-Community pflegt eine große Anzahl von Bibliotheken, die für verschiedene Anwendungen verfügbar sind. Diese können über den Python Package Index (PyPI) installiert werden.





Linked Lists

Definition:


Eine verkettete Liste (Linked List) ist eine lineare Datenstruktur, in der jedes Element auf das nächste Element in der Sequenz verweist. Jedes Element in einer Linked List wird als Knoten bezeichnet.


Kontext in Python


Python hat keine eingebaute Implementierung für Linked Lists, aber sie können einfach mit Klassen oder anderen Datenstrukturen wie Listen umgesetzt werden.


Beispiele


Python Code

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

# Initialisierung
head = Node(1)
second = Node(2)
third = Node(3)

# Verknüpfung der Knoten
head.next = second
second.next = third
        

Verwandte Konzepte


1. Datenstrukturen: Allgemeine Sammlung von Datenstrukturen einschließlich Arrays, Listen, etc.

2. Stacks: Eine weitere lineare Datenstruktur, die auf dem LIFO-Prinzip basiert.


Wichtige Hinweise:

  1. Verkettete Listen sind in bestimmten Anwendungen effizienter als Arrays, insbesondere wenn es um Einfügen und Löschen von Elementen geht.





Linters

Definition:


Linters sind statische Code-Analysewerkzeuge, die den Quellcode auf Fehler, Code-Smells oder Verstöße gegen Stilrichtlinien wie PEP 8 überprüfen. Sie können integriert oder als separate Tools in der Entwicklungsumgebung eingesetzt werden.


Beliebte Python-Linters:


Pylint Eines der bekanntesten und am meisten genutzten Linting-Werkzeuge für Python. Es bietet umfangreiche Anpassungsoptionen und erkennt eine breite Palette von Fehlern und Stilproblemen.

Flake8: Ein weiterer populärer Linter, der sich durch seine einfache Bedienung und Schnelligkeit auszeichnet.

Black: Ein Code-Formatter, der auch als Linter fungiert, um den Code automatisch gemäß den PEP 8-Richtlinien zu formatieren.


Anwendung


Linters können manuell über die Kommandozeile oder automatisch in der Entwicklungsumgebung (IDE) ausgeführt werden.

Python Code

  # Beispiel für Pylint
  pylint my_script.py

 

Vorteile


Codequalität: Erhöht die Lesbarkeit und Wartbarkeit des Codes.

Fehlervermeidung: Erkennt potenzielle Bugs und Sicherheitslücken..

Teamarbeit: Fördert die Einhaltung eines konsistenten Codestils in Teams.

Verwandte Konzepte


1. Continuous Integration (CI): Linters werden oft in CI-Pipelines eingesetzt, um den Code automatisch vor dem Mergen zu prüfen.

1. Code Reviews: Linters können den Review-Prozess vereinfachen, indem sie grundlegende Fehler und Stilprobleme im Vorfeld aufdecken.


Wichtige Hinweise:

  1. Konfigurierbarkeit: Die meisten Linters erlauben eine benutzerdefinierte Konfiguration, um bestimmte Regeln zu ignorieren oder hinzuzufügen.
  1. Falsch Positive/Negative: Obwohl nützlich, sind Linters nicht unfehlbar. Man sollte ihre Ergebnisse immer im Kontext betrachten.





Lists (Listen)

Definition:


Listen sind eine der grundlegenden Datenstrukturen in Python, die verwendet werden, um eine geordnete Sammlung von Elementen zu speichern. Eine Liste kann Elemente unterschiedlicher Datentypen enthalten und ermöglicht das Hinzufügen, Entfernen und Ändern von Elementen.


Kontext in Python:


Listen sind vielseitig und werden in Python häufig eingesetzt. Sie können verwendet werden, um Daten zu speichern, zu organisieren und darauf zuzugreifen. Listen sind durch Index zugänglich, was das Arbeiten mit einzelnen Elementen erleichtert.


Beispiele:


1. Erstellen einer Liste:

Python Code

  zahlen = [1, 2, 3, 4, 5]
  namen = ["Alice", "Bob", "Charlie"]
  gemischt = [1, "Hallo", 3.14]
  

2. Zugriff auf Elemente einer Liste:

Python Code

  print(zahlen[0])  # Gibt das erste Element (1) aus
  print(namen[1])   # Gibt das zweite Element ("Bob") aus
  

Verwandte Konzepte


1. Sequenzen: Listen sind eine Form von Sequenzen in Python.

2. Indexierung: Listen werden durch Indexe zugänglich gemacht.


Wichtige Hinweise:

  1. Listen sind äußerst vielseitig und können Elemente unterschiedlicher Datentypen speichern.
  2. Die Indizierung von Listen beginnt bei 0, d. h. das erste Element hat den Index 0, das zweite den Index 1 usw.





Loops / Schleifen

Definition:


Schleifen sind in Python verwendete Kontrollstrukturen, die es ermöglichen, einen Codeblock wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist oder über eine Sequenz von Elementen zu iterieren. Die beiden häufigsten Arten von Schleifen in Python sind die "for"-Schleife und die "while"-Schleife.


Kontext in Python:


Schleifen sind in Python unverzichtbar und werden verwendet, um repetitive Aufgaben effizient zu erledigen. Sie erlauben das Durchlaufen von Listen, Verarbeiten von Daten und vieles mehr.


Beispiele:


1. Verwendung der "for"-Schleife zum Durchlaufen einer Liste:

Python Code

  zahlen = [1, 2, 3, 4, 5]
  for zahl in zahlen:
      print(zahl)
  

2. Verwendung der "while"-Schleife zur wiederholten Ausführung:

Python Code

  i = 0
  while i < 5:
      print(i)
      i += 1
  

Verwandte Konzepte


1. Iteration: Schleifen ermöglichen das Durchlaufen von Sequenzen wie Listen.

2. for-Schleife: Die "for"-Schleife wird verwendet, um über eine Sequenz zu iterieren.


Wichtige Hinweise:

  1. Schleifen sind nützlich, um repetitive Aufgaben zu automatisieren.
  2. Die "for"-Schleife wird oft für die Iteration über Listen und Sequenzen verwendet, während die "while"-Schleife für bedingte Wiederholungen eingesetzt wird.





M



Matplotlib

Definition:


Matplotlib ist eine 2D-Plotting-Bibliothek für Python, die eine Vielzahl von statischen, interaktiven und animierten Visualisierungen in Python ermöglicht. Sie ist ein Schlüsselwerkzeug für die Datenanalyse und -visualisierung und wird häufig in wissenschaftlichen Arbeiten, Ausbildung und Web-Entwicklung eingesetzt.


Hauptmerkmale:


Vielseitigkeit: Unterstützt eine breite Palette von Plot-Typen, einschließlich Linienplots, Balkendiagramme, Tortendiagramme und vieles mehr.

Einfache Schnittstellen: Einfach zu verwenden für einfache Plots, bietet aber auch Kontrolle über nahezu alle Aspekte der Visualisierung für fortgeschrittene Anwender.

Integration: Lässt sich nahtlos mit anderen Python-Bibliotheken wie Pandas und NumPy integrieren.


Beispiele


1. Einfaches Linienplot

Python Code

 import matplotlib.pyplot as plt

 plt.plot([1, 2, 3], [1, 4, 9])
 plt.show()



  

2. Balkendiagramm

Python Code

  plt.bar(['Apple', 'Banana', 'Orange'], [5, 3, 7])
  plt.show()

  

3. Mehrere Plots

Python Code

  fig, axes = plt.subplots(1, 2)
  axes[0].plot([1, 2, 3], [1, 4, 9])
  axes[1].bar(['Apple', 'Banana', 'Orange'], [5, 3, 7])
  plt.show()


  

Verwandte Konzepte


1. Pandas: Matplotlib wird oft mit Pandas verwendet, um Daten direkt aus DataFrames zu visualisieren.

2. Jupyter Notebook & Jupyter Lab: Häufig werden Matplotlib-Plots direkt in Jupyter-Umgebungen angezeigt.

3. Seaborn: Eine auf Matplotlib basierende höhere Visualisierungsbibliothek.


Wichtige Hinweise:

  1. Matplotlib ist zwar sehr leistungsfähig, kann aber auch komplex sein, besonders wenn es um fortgeschrittene Visualisierungen geht. Für bestimmte Anwendungen könnten spezialisierte Bibliotheken wie Seaborn oder Plotly besser geeignet sein.





Math Library (Mathematische Bibliothek)

Definition:


Die 'math'-Bibliothek in Python ist eine Standardbibliothek, die eine breite Palette an mathematischen Funktionen und Konstanten bereitstellt. Sie wird häufig genutzt, um komplexe mathematische Operationen einfacher zu gestalten und den Code sauber zu halten.


Hauptmerkmale:


Mathematische Funktionen: Funktionen wie 'sin()', 'cos()', 'sqrt()' und viele mehr.

Konstanten: Beinhaltet mathematische Konstanten wie Pi ('math.pi') und Euler'sche Zahl ('math.e').

Rundung und Abschneiden: Funktionen wie 'ceil()', 'floor()', 'round()'.

Beispiele


1. Berechnung von Wurzeln und Potenzen

Python Code

  import math

  sqrt_val = math.sqrt(16)  # Ergebnis ist 4.0
  power_val = math.pow(2, 3)  # Ergebnis ist 8.0
  

2. Trigonometrische Funktionen

Python Code

  sin_val = math.sin(math.pi / 2)  # Ergebnis ist 1.0
  cos_val = math.cos(0)  # Ergebnis ist 1.0

3. Runden von Zahlen

Python Code

  ceil_val = math.ceil(1.2)  # Ergebnis ist 2
  floor_val = math.floor(1.8)  # Ergebnis ist 1
  

Verwandte Konzepte


1. Arithmetic: Grundlegende mathematische Operationen in Python.

2. NumPy: Für komplexere mathematische und statistische Operationen, besonders bei der Arbeit mit Arrays.


Wichtige Hinweise:

  1. Funktionen in der 'math'-Bibliothek sind im Allgemeinen schneller und präziser als benutzerdefinierte Implementierungen.
  1. Einige Funktionen, wie 'math.log()', werfen Ausnahmen, wenn sie mit ungültigen Argumenten aufgerufen werden (z.B. negative Zahlen oder Null).





Memory Management

Definition:


Speicherverwaltung bezieht sich auf die Techniken, mit denen ein Programm Speicherressourcen reserviert, verwendet und freigibt. Dies ist entscheidend für die Leistung und Effizienz von Anwendungen.


Kontext in Python


Python verwaltet den Speicher automatisch durch einen Mechanismus namens Garbage Collection. Darüber hinaus können Entwickler mit verschiedenen Bibliotheken und Tools detailliertere Kontrolle über den Speicher erlangen.


Beispiele


Python Code

import gc

# Anzahl der Objekte im Speicher
print(gc.get_count())
        

Verwandte Konzepte


1. Variablen: Speicher für Variablen wird automatisch verwaltet.

2. Objekte: Jedes Objekt nimmt Speicherplatz ein, der verwaltet werden muss.

3. Klassen: Instanzen von Klassen sind Objekte, die Speicher verwenden.


Wichtige Hinweise:

  1. Die Garbage Collection kann manuell gesteuert werden, sollte jedoch mit Vorsicht verwendet werden.
  2. Effiziente Speicherverwaltung ist besonders in großen und komplexen Anwendungen wichtig.





Methoden

Definition:


Eine Methode ist eine Funktion, die innerhalb einer Klasse definiert ist und auf die Attribute und Methoden dieser Klasse zugreifen kann. Methoden sind grundlegende Bausteine in der objektorientierten Programmierung und dienen dazu, das Verhalten von Objekten zu definieren.


Kontext in Python


Python bietet verschiedene Arten von Methoden, darunter Instanzmethoden, Klassenmethoden und statische Methoden, die jeweils auf unterschiedliche Weise auf die Daten der Klasse zugreifen.


Beispiele


Python Code

# Beispiel: Instanzmethode in Python
class Auto:
    def fahren(self):
        print("Das Auto fährt.")

mein_auto = Auto()
mein_auto.fahren()  # Ausgabe: Das Auto fährt.
        

Verwandte Konzepte


1. Klassen

2. Attribute

3. Vererbung


Wichtige Hinweise:

  1. Methoden sollten immer den Zustand oder das Verhalten des Objekts beeinflussen, auf dem sie aufgerufen werden.
  2. Klassenmethoden und statische Methoden haben keinen Zugriff auf Instanzattribute.





Mixed Reality

Definition:


Mixed Reality (MR) ist eine Verschmelzung der realen und der virtuellen Welt, bei der physische und digitale Objekte nebeneinander existieren und interagieren. Im Gegensatz zur Virtual Reality, wo der Benutzer vollständig in eine künstliche Welt eingetaucht ist, ergänzt Mixed Reality die reale Welt mit digitalen Elementen.


Kontext in Technologie


Mixed Reality findet Anwendung in verschiedenen Sektoren wie Medizin, Ingenieurwesen und Unterhaltung. Obwohl Python weniger häufig für die Entwicklung von MR-Anwendungen verwendet wird, sind spezialisierte Frameworks und Bibliotheken verfügbar.


Beispiele


1. HoloLens: Ein Headset von Microsoft für Mixed Reality.

2. MR-Simulationen: In der Industrie werden MR-Systeme zur Verbesserung von Design und Training eingesetzt.

Verwandte Technologien


1. Virtual Reality

2. Augmented Reality


Wichtige Hinweise:

  1. Die Hardware für Mixed Reality kann komplex und teuer sein.
  2. Mixed Reality erfordert oft spezialisierte Sensoren zur Verfolgung der realen Welt.





Modules (Module)

Definition:


In Python ist ein Modul eine Sammlung von Python-Code, der in einer Datei organisiert ist. Ein Modul kann Funktionen, Klassen und Variablen enthalten, die in anderen Python-Programmen wiederverwendet werden können. Module ermöglichen es, Code logisch zu strukturieren und zu organisieren.


Kontext in Python:


Python bietet die Möglichkeit, Code in Modulen zu organisieren, um ihn besser wartbar und wiederverwendbar zu machen. Dies fördert die Modularität und ermöglicht es, große Programme in überschaubare Teile aufzuteilen.


Beispiele:


1. Erstellen eines eigenen Moduls:

Python Code

  # Beispielmodul "mein_modul.py"
  def hallo_welt():
      print("Hallo, Welt!")

  zahl = 42
  

2. Verwenden eines Moduls in einem anderen Programm:

Python Code

  # Verwenden des Moduls "mein_modul.py"
  import mein_modul

  mein_modul.hallo_welt()  # Aufrufen der Funktion aus dem Modul
  print(mein_modul.zahl)  # Zugriff auf die Variable aus dem Modul
  

Verwandte Konzepte


1. Pakete (Packages): Pakete sind Container für Module und ermöglichen eine hierarchische Strukturierung von Python-Code.

2. Bibliotheken (Libraries): Bibliotheken sind Sammlungen von Modulen, die zusätzliche Funktionalität bieten.


Wichtige Hinweise:

  1. Module fördern die Wiederverwendbarkeit von Code und erleichtern die Zusammenarbeit in Entwicklerteams.
  2. Python verfügt über eine Vielzahl von Standardmodulen, die in der Python-Standardbibliothek enthalten sind und in vielen Anwendungen verwendet werden können.





Multidimensionale Arrays in Python

Definition:


Ein multidimensionales Array ist ein Array, dessen Elemente selbst Arrays sind. Diese inneren Arrays können ebenfalls Arrays enthalten, was zu einer verschachtelten oder "mehrdimensionalen" Struktur führt. In Python wird dies meistens mit Hilfe der Bibliothek NumPy implementiert.


Eigenschaften:


Dimensionen: Die "Tiefe" des Arrays, oft als Achsen bezeichnet.

Shape: Ein Tupel, das die Größe jeder Dimension angibt.

Indexierung: Der Zugriff auf Elemente erfolgt durch mehrere Indizes, einen für jede Dimension.


Anwendung in Python

Python Code

  import numpy as np
  # Ein 2D-Array (Matrix) erstellen
  matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
  

Beispiele für Multidimensionalität


2D-Arrays: Oft als Matrizen bezeichnet.

3D-Arrays: Werden beispielsweise in der Computergrafik verwendet.

n-D-Arrays: In wissenschaftlichen Anwendungen sind auch Arrays mit höheren Dimensionen üblich.


Verwandte Konzepte


1. Array Slicing: Zugriff auf Teilbereiche des Arrays.

2. Array Reshaping: Ändern der Dimensionen eines bestehenden Arrays.


Wichtige Hinweise:

  1. Effizienz: Multidimensionale Arrays in NumPy sind oft effizienter als verschachtelte Python-Listen.
  1. Funktionalität: NumPy bietet eine Vielzahl von Funktionen für Operationen mit mehrdimensionalen Arrays wie Matrixmultiplikation, Transposition und mehr.





Multidimensionale Array Slicing in Python

Definition:


Multidimensionale Array Slicing bezieht sich auf die Methode, durch die Teilbereiche eines mehrdimensionalen Arrays extrahiert werden können. Diese Methode wird hauptsächlich in der NumPy-Bibliothek in Python verwendet.


Eigenschaften:


Mehrere Dimensionen: Beim Slicing eines mehrdimensionalen Arrays können Indizes für mehr als eine Dimension angegeben werden.

Slicing Syntax: Die Syntax ähnelt der eines eindimensionalen Arrays, aber mit Kommata getrennte Slices für jede Dimension.

Ergebnis: Das Ergebnis ist ebenfalls ein mehrdimensionales Array, dessen Dimensionen und Größen von den angegebenen Slices abhängen.


Anwendung in Python

Mit NumPy kann man zum Beispiel folgendermaßen ein multidimensionales Array slicen:

Python Code

  import numpy as np
  my_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
  sub_array = my_array[0:2, 1:3]  # Extrahiert [[2, 3], [5, 6]]

  

Beispiele


2D Array Slicing Bei einer Matrix (2D-Array) kann man sowohl Zeilen als auch Spalten slicen.

3D Array Slicing: Bei einem 3D-Array können z.B. Ebenen, Zeilen und Spalten gesliced werden.


Verwandte Konzepte


1. Array Reshaping: Die Dimensionen des Slices können verändert werden, um dem Bedarf gerecht zu werden..

2. Boolean Indexing: Eine fortgeschrittenere Form des Slicings, bei der man Elemente basierend auf Bedingungen auswählt.


Wichtige Hinweise:

  1. Lesbarkeit: Bei komplexen Slices ist es ratsam, den Code gut zu kommentieren, um die Lesbarkeit zu erhöhen.
  1. Performance: NumPy-Optimierungen machen Slicing von mehrdimensionalen Arrays effizienter als verschachtelte Python-Listen.





Multiprocessing

Definition:


Multiprocessing bezeichnet die gleichzeitige Ausführung mehrerer Prozesse, in der Regel zur Verbesserung der Programmleistung für rechenintensive Aufgaben. Jeder Prozess wird in einem eigenen Speicherbereich ausgeführt.


Kontext in Python


In Python ermöglicht das multiprocessing-Modul die Erstellung von unabhängigen Prozessen. Dies ist besonders nützlich für CPU-bound Aufgaben, bei denen die Rechenleistung der begrenzende Faktor ist.


Beispiele


Python Code

from multiprocessing import Process

def my_function(name):
    print(f"Hello, {name}")

if __name__ == "__main__":
    p = Process(target=my_function, args=("World",))
    p.start()
    p.join()
        

Verwandte Konzepte


1. Threading: Für I/O-bound Aufgaben.

2. Asynchronous Programming: Für parallele I/O-Operationen.

3. CPU: Die zentrale Recheneinheit, die durch Multiprocessing besser ausgenutzt wird.


Wichtige Hinweise:

  1. Multiprocessing ist in der Regel effizienter als Threading für CPU-bound Aufgaben.
  2. Da jeder Prozess in einem eigenen Speicherbereich läuft, gibt es keinen gemeinsamen Zustand, was zu einer erhöhten Sicherheit führt.





Mutable vs Immutable

Definition:


n Python bezieht sich die Unterscheidung zwischen "Mutable" und "Immutable" auf die Fähigkeit eines Objekts, nach seiner Erstellung verändert zu werden. Ein 'mutable' Objekt kann modifiziert werden, während ein 'immutable' Objekt nicht verändert werden kann.


Mutable Typen:


Listen: Veränderbare, geordnete Sammlungen von Elementen.

Wörterbücher (Dictionaries): eränderbare Sammlungen von Schlüssel-Wert-Paaren.

Sets: Veränderbare, ungeordnete Sammlungen von eindeutigen Elementen.


Immutable Typen:


Integers: Ganze Zahlen.

Floats: Gleitkommazahlen.

Strings: Textketten.

Tupel: Geordnete, unveränderbare Sammlungen von Elementen.

Booleans: 'True' oder 'False'.


Beispiele


1. Mutable: Liste

Python Code

  my_list = [1, 2, 3]
  my_list[0] = 4  # Ändert den Wert des ersten Elements
 

2. Immutable: Tuple

Python Code

  my_tuple = (1, 2, 3)
  # my_tuple[0] = 4  # Würde einen Fehler auslösen
  

Verwandte Konzepte


1. Deep vs Shallow Copy: Bei der Kopie von mutable Objekten ist Vorsicht geboten, um keine unbeabsichtigten Änderungen an Originaldaten vorzunehmen.


Wichtige Hinweise:

  1. Die Wahl zwischen mutable und immutable Typen hat Auswirkungen auf Performance und Sicherheit.





N



nose

Definition:


nose ist ein Erweiterungs-Framework für das Python-Test-Framework unittest. Es bietet zusätzliche Funktionen und Erweiterungen für das Testen von Python-Code und das Sammeln von Testergebnissen.


Kontext in Python:


nose kann verwendet werden, um Tests in Python-Projekten zu organisieren und auszuführen. Es ermöglicht das Entdecken von Tests automatisch, das Ausführen von Tests parallel und das Generieren von Berichten über Testabdeckung.


Beispiele:


1. Testausführung mit nose:

Python Code

  $ nosetests my_module.py
  

2. Testentdeckung mit nose:

Python Code

  $ nosetests --with-coverage my_module.py
  

Verwandte Bibliotheken


1. pytest

2. unittest

3. doctest


Wichtige Hinweise:

  1. nose bietet eine Erweiterung für das Testen von Python-Code, insbesondere in Kombination mit unittest.
  2. Es ermöglicht die Verwendung von Plugins und Erweiterungen für erweiterte Funktionen.





NumPy (Numerical Python)

Definition:


NumPy steht für Numerical Python und ist eine leistungsstarke Bibliothek für die Programmiersprache Python. Sie wird hauptsächlich für mathematische Berechnungen, wissenschaftliche Computing-Aufgaben, und als Grundlage für viele Machine-Learning-Bibliotheken verwendet.


Hauptmerkmale:


Arrays: NumPy's Kernfunktionalität ist die effiziente Manipulation von mehrdimensionalen Arrays.

Mathematische Funktionen: Es bietet eine Vielzahl von vordefinierten mathematischen Operationen, die auf Arrays ausgeführt werden können.

Interoperabilität: NumPy kann leicht mit anderen Bibliotheken und Datenformaten integriert werden.


Beispiele


1. Array-Erstellung:: Ein einfaches Beispiel, um ein Array zu erstellen.

Python Code

  import numpy as np
  my_array = np.array([1, 2, 3, 4, 5])
  

2. Mathematische Operationen: Addition von zwei Arrays.

Python Code

 array1 = np.array([1, 2, 3])
 array2 = np.array([4, 5, 6])
 sum_array = array1 + array2
  

3. Statistische Funktionen: Berechnung des Mittelwerts eines Arrays.

Python Code

  mean_value = np.mean(my_array)

  

Verwandte Bibliotheken


1. SciPy: Erweitert die Fähigkeiten von NumPy für wissenschaftliche Berechnungen.

2. Pandas: Bietet datenanalytische Funktionen und verwendet NumPy unter der Haube.

3. Matplotlib: Für die Datenvisualisierung, arbeitet gut mit NumPy zusammen.


Wichtige Hinweise:

  1. Da NumPy in C geschrieben ist, sind seine Operationen im Allgemeinen schneller und benötigen weniger Speicher als native Python-Listen oder -Schleifen.





O



Objekte

Definition:


Ein Objekt ist eine Instanz einer Klasse und dient als Behälter für Daten (Attribute) und Methoden, die diese Daten manipulieren. In der objektorientierten Programmierung sind Objekte grundlegende Bausteine.


Kontext in Python


In Python ist fast alles ein Objekt, von einfachen Datentypen wie Zahlen und Zeichenketten bis hin zu Funktionen und Modulen. Man erstellt ein Objekt durch Instanziierung einer Klasse.


Beispiele


Python Code

class Dog:
    def __init__(self, name):
        self.name = name

# Instanzierung der Klasse Dog
my_dog = Dog("Rex")

# Zugriff auf das Attribut 'name'
print(my_dog.name)  # Output: Rex
        

Verwandte Konzepte


1. Klassen: Objekte sind Instanzen von Klassen.

2. Kapselung: Durch Kapselung können Objekte ihre internen Daten verbergen.

3. Vererbung: Ein Objekt kann Eigenschaften einer Elternklasse erben.


Wichtige Hinweise:

  1. Objekte fördern die Modularität und Wiederverwendbarkeit des Codes.
  2. Die Manipulation von Objektattributen sollte idealerweise durch Methoden der jeweiligen Klasse erfolgen.





OOP (Objektorientierte Programmierung)

Definition:


Die objektorientierte Programmierung (OOP) ist ein Programmierparadigma, bei dem Software in Form von "Objekten" modelliert wird. Diese Objekte können Daten (Attribute) und Methoden (Funktionen) enthalten, die es ermöglichen, das Verhalten und die Interaktionen innerhalb einer Anwendung zu organisieren. OOP fördert die Wiederverwendbarkeit, Modularität und eine klare Strukturierung von Code.


Kontext in Python:


Python ist eine objektorientierte Programmiersprache, was bedeutet, dass sie die Konzepte und Prinzipien der OOP nativ unterstützt. In Python können Klassen definiert werden, um Objekte zu erstellen, und die Vererbung ermöglicht es, gemeinsame Eigenschaften und Methoden zwischen Klassen zu teilen. OOP wird in Python häufig verwendet, um komplexe Anwendungen zu entwickeln, da es eine effiziente Möglichkeit bietet, den Code zu organisieren und zu strukturieren.


Beispiele:


1. Definition einer Klasse in Python:

Python Code

  # Definition einer einfachen Klasse
  class Auto:
      def __init__(self, marke, modell):
          self.marke = marke
          self.modell = modell

      def beschleunigen(self):
          print("Das Auto beschleunigt.")
  

2. Erstellung und Verwendung eines Objekts:

Python Code

  # Erstellen eines Auto-Objekts
  mein_auto = Auto("Volkswagen", "Golf")

  # Zugriff auf Attribute und Methoden des Objekts
  print(mein_auto.marke)  # Ausgabe: Volkswagen
  mein_auto.beschleunigen()  # Ausgabe: Das Auto beschleunigt.
  

Verwandte Konzepte


1. Klassen (Classes): Klassen sind Baupläne für Objekte und definieren deren Struktur und Verhalten.

2. Vererbung (Inheritance): Vererbung ermöglicht es, Eigenschaften und Methoden von einer Klasse zu einer anderen zu übernehmen.


Wichtige Hinweise:

  1. OOP fördert die Modellierung von Software auf eine Weise, die der menschlichen Denkweise nahekommt, was die Entwicklung und Wartung von Anwendungen erleichtert.
  2. Python bietet auch die Möglichkeit, andere Programmierparadigmen wie die funktionale Programmierung zu verwenden, wenn dies für eine spezifische Aufgabe geeignet ist.





Operatoren (Operators)

Definition:


Operatoren sind Symbole oder spezielle Zeichen in Python, die dazu dienen, Operationen auf Werten oder Variablen durchzuführen. Sie ermöglichen mathematische Berechnungen, Vergleiche und andere Aktionen in Programmierungen.


Kontext in Python:


Operatoren sind grundlegende Bausteine in Python und werden in verschiedenen Kontexten verwendet, einschließlich arithmetischer Berechnungen, Vergleichen von Werten, logischen Ausdrücken und vielem mehr.


Beispiele:


1. Arithmetische Operatoren:

Python Code

  a = 10
  b = 5
  addition = a + b  # Addition
  subtraction = a - b  # Subtraktion
  multiplication = a * b  # Multiplikation
  division = a / b  # Division
  

2. Vergleichsoperatoren:

Python Code

  x = 7
  y = 3
  is_equal = x == y  # Gleichheit überprüfen
  is_not_equal = x != y  # Ungleichheit überprüfen
  is_greater = x > y  # Größer als
  is_less = x < y  # Kleiner als
  

Verwandte Konzepte


1. Zuweisungsoperatoren: Zuweisungsoperatoren dienen dazu, Werte Variablen zuzuweisen oder zu aktualisieren.


Wichtige Hinweise:

  1. Operatoren sind in Python vielseitig und können je nach Kontext unterschiedliche Aufgaben erfüllen.
  2. Operatoren sind unverzichtbar, um mathematische, logische und vergleichende Operationen in Programmen durchzuführen.





OS Library (Operating System Library)

Definition:


Die 'os'-Bibliothek in Python ist eine Standardbibliothek, die eine portable Möglichkeit bietet, mit dem Betriebssystem zu interagieren. Sie enthält Funktionen für das Interagieren mit dem Dateisystem, Variablen der Betriebssystem-Umgebung und Systembefehlen, unter anderem.


Hauptmerkmale:


Dateioperationen: Erstellen, Lesen, Schreiben und Löschen von Dateien.

Verzeichnismanagement: Erstellen und Löschen von Verzeichnissen, Auflisten von Dateien in einem Verzeichnis.

Umgebungsvariablen: Lesen und Setzen von Umgebungsvariablen.


Beispiele


1. Verzeichnis wechseln

Python Code

  import os
os.chdir('/path/to/directory')
  

2. Umgebungsvariablen lesen

Python Code

  user = os.environ.get('USER')
  

3. Datei löschen

Python Code

  os.remove('example.txt')
  

Verwandte Konzepte


1. Sys Library: Zum Zugriff auf Systemspezifische Parameter und Funktionen.

2. Shutil Library: Für eine Reihe von Dateioperationen auf einer höheren Ebene, wie das Kopieren von Dateien.


Wichtige Hinweise:

  1. Obwohl die os-Bibliothek versucht, eine Schnittstelle für alle Betriebssysteme bereitzustellen, gibt es immer noch systemabhängige Funktionen.
  1. Die os-Bibliothek sollte mit Vorsicht verwendet werden, insbesondere Funktionen, die Dateien oder Verzeichnisse löschen, da dies irreversible Aktionen sind.





P



Packages (Pakete)

Definition:


In Python ist ein Paket eine Hierarchie von Modulen, die in einem Verzeichnis organisiert sind. Pakete ermöglichen es, Code in logische Gruppen zu unterteilen und erweitern die Möglichkeiten zur Organisation von Python-Projekten. Ein Paket kann sowohl Module als auch Unterpakete enthalten.


Kontext in Python:


Python-Entwickler verwenden Pakete, um Code in sinnvolle Einheiten zu strukturieren und zu organisieren. Dies ist besonders nützlich für größere Projekte, bei denen es wichtig ist, den Code in überschaubare Teile aufzuteilen.


Beispiele:


1. Erstellen eines eigenen Pakets:

Verzeichnisstruktur

  mein_paket/
  ├── __init__.py
  ├── modul1.py
  ├── modul2.py
  └── unterpaket/
      ├── __init__.py
      └── modul3.py
  

2. Verwenden eines Pakets in einem Python-Programm:

Python Code

  # Importieren eines Moduls aus einem Paket
  from mein_paket import modul1

  # Importieren einer Funktion aus einem Modul
  from mein_paket.modul2 import meine_funktion

  # Importieren eines Moduls aus einem Unterpaket
  from mein_paket.unterpaket import modul3
  

Verwandte Konzepte


1. Module: Pakete bestehen aus Modulen, die in einem Verzeichnis organisiert sind.

2. Bibliotheken (Libraries): Bibliotheken können Pakete enthalten, die zusätzliche Funktionalität bieten.


Wichtige Hinweise:

  1. Das Vorhandensein einer Datei namens "__init__.py" in einem Verzeichnis kennzeichnet es als Python-Paket.
  2. Pakete ermöglichen eine hierarchische Strukturierung von Python-Code und verbessern die Übersichtlichkeit größerer Projekte.





Pandas

Definition:


Pandas ist eine Open-Source-Datenanalyse- und Datenmanipulationsbibliothek für Python. Sie bietet Datenstrukturen für den effizienten Umgang mit tabellarischen Daten und Zeitreihen. Pandas ist besonders geeignet für Datenanalyse, Data Cleaning und Datenvisualisierung.


Hauptmerkmale:


DataFrame: Ein zweidimensionales, tabellarisches Datenformat, das die Grundlage für die meisten Pandas-Operationen bildet.

Seriendaten: Unterstützt Zeitreihenanalysen durch spezielle Datenstrukturen.

Vielseitige Datenmanipulation: Beinhaltet Funktionen für das Sortieren, Filtern und Aggregieren von Daten.


Beispiele


1. Daten importieren

Python Code

  import pandas as pd

  df = pd.read_csv('data.csv')

  

2. Daten filtern und sortieren:

Python Code

  filtered_df = df[df['Age'] > 18]
  sorted_df = df.sort_values('Age')

  

3. Daten aggregieren:

Python Code

  mean_age = df['Age'].mean()
sum_salary = df['Salary'].sum()
  

Verwandte Konzepte


1. NumPy: Für komplexe numerische Algorithmen.

2. Matplotlib: Für die Datenvisualisierung, arbeitet gut mit NumPy zusammen.

3. Jupyter Notebook: Pandas wird oft in Jupyter Notebooks für interaktive Datenanalysen genutzt.


Wichtige Hinweise:

  1. Pandas ist eines der wichtigsten Tools für Data Scientists und Analysten, die mit Python arbeiten. Es erleichtert die Datenverarbeitung erheblich und bietet eine Vielzahl an Methoden zur Datenanalyse.





Parameter (Parameter)

Definition:


Ein Parameter ist ein Platzhalter oder eine Variable in einer Funktion oder Methode, die dazu dient, Argumente zu empfangen und mit diesen innerhalb der Funktion zu arbeiten. Parameter definieren, welche Art von Daten oder Werten eine Funktion erwartet.


Kontext in Python:


In Python werden Parameter in Funktions- oder Methodendefinitionen angegeben und dienen dazu, Argumente zu akzeptieren und damit zu arbeiten. Sie ermöglichen es, Funktionen flexibel zu gestalten, indem sie verschiedene Eingabedaten verarbeiten können.


Beispiele:


1. Funktion mit einem Parameter:

Python Code

  def square(x):
      return x * x
  
  result = square(5)
  print(result)
  

2. Funktion mit mehreren Parametern:

Python Code

  def add(x, y):
      return x + y
  
  result = add(5, 3)
  print(result)
  

Verwandte Konzepte


1. Argument: Ein Argument ist ein Wert oder eine Variable, die an eine Funktion oder Methode übergeben wird.


Wichtige Hinweise:

  1. Parameter definieren die Schnittstelle einer Funktion und legen fest, welche Art von Daten sie akzeptiert.
  2. Python unterstützt verschiedene Arten von Parametern, einschließlich Standardwerten, benannter Parameter und variabler Parameter.





PEP 257

Definition:


PEP 257 steht für "Python Enhancement Proposal 257" und befasst sich mit den Docstring-Konventionen in der Python-Programmiersprache. Es legt fest, wie Docstrings geschrieben und formatiert werden sollten, um den Code verständlicher und leichter wartbar zu machen.


Grundlagen:


Was ist ein Docstring?: Ein Docstring ist ein String-Literal, das als Kommentar direkt nach der Definition einer Funktion, Methode, Klasse oder eines Moduls platziert wird.

Zweck: Docstrings erleichtern das Verständnis des Codes und werden oft automatisch zu Dokumentation generiert.


Richtlinien


Einzeilige DocstringsSollten in einer Zeile abgeschlossen sein.

Python Code

  def add(a, b):
     """Add two numbers together."""
     return a + b
 

Mehrzeilige DocstringsEnthalten eine Zusammenfassung, gefolgt von einer leerzeiligen Trennung und einer ausführlicheren Beschreibung.

Python Code

  def complex_function(a, b, c):
      """
      Perform a complex operation.
    
      This function takes three arguments, does something
      complex, and returns a value.
      """
      # Funktion Logik

  

Verwandte Konzepte


1. Pep 8: Ein weiteres wichtiges PEP, das den Stilcode für Python definiert.


Wichtige Hinweise:

  1. Zugänglichkeit: Docstrings können programmatisch über das __doc__ Attribut abgerufen werden.
  1. Konsistenz: Es wird empfohlen, einen konsistenten Stil für alle Docstrings in einem Projekt zu verwenden.





PEP 8

Definition:


PEP 8 steht für "Python Enhancement Proposal 8" und ist der Stilguide für die Programmiersprache Python. Er wurde erstellt, um Entwicklern eine Anleitung zu bieten, wie Python-Code geschrieben werden sollte. Ziel ist es, den Code leserlicher und konsistenter zu machen.


Grundregeln:


Einrückung: Verwende 4 Leerzeichen pro Einrückungslevel.

Maximale Zeilenlänge: Begrenze alle Zeilen auf maximal 79 Zeichen.

Imports: Imports sollten immer am Anfang der Datei stehen und von der Standardbibliothek getrennt sein.

Whitespace: Vermeide unnötige Leerzeichen.


Beispiel

Python Code

  # Gut
  def function_with_args(arg1, arg2):
      pass

  # Schlecht
  def function_with_args( arg1, arg2 ):
      pass
 

Verwandte Konzepte


1. Pep 257: Ein anderer wichtiger PEP, der sich mit Docstrings befasst.

1. Linters: Tools wie 'flake8' oder 'pylint' können verwendet werden, um den Code auf Einhaltung von PEP 8 zu prüfen.


Wichtige Hinweise:

  1. Flexibilität: PEP 8 ist ein Leitfaden, keine Pflicht. In einigen Fällen kann es sinnvoll sein, von den Regeln abzuweichen.
  1. Aktualität: Der Leitfaden wird regelmäßig aktualisiert, es ist daher sinnvoll, die neuesten Empfehlungen zu verfolgen.





Polymorphism (Polymorphismus)

Definition:


Polymorphismus ist ein weiteres zentrales Konzept der objektorientierten Programmierung. Es ermöglicht Objekten, den gleichen Methodennamen zu verwenden, aber unterschiedliche Implementierungen dieser Methoden bereitzustellen.


Kontext in Python


Python unterstützt Polymorphismus durch seine dynamische Typisierung. Das bedeutet, dass man denselben Methodennamen für unterschiedliche Objekttypen verwenden kann, solange diese Objekte die Methode unterstützen.


Beispiele


Python Code

class Dog:
    def make_sound(self):
        return "Woof"

class Cat:
    def make_sound(self):
        return "Meow"

def animal_sound(animal):
    print(animal.make_sound())

a = Dog()
b = Cat()

animal_sound(a)  # Output: Woof
animal_sound(b)  # Output: Meow
        

Verwandte Konzepte


1. Klassen: Polymorphismus ist ein Verhalten von Klassen.

2. Kapselung: Kapselung und Polymorphismus arbeiten oft zusammen.

3. Vererbung: Vererbung ermöglicht Polymorphismus in einer Klassenhierarchie.


Wichtige Hinweise:

  1. Polymorphismus fördert die Wiederverwendbarkeit und Erweiterbarkeit des Codes.
  2. Das Konzept unterstützt auch das SOLID-Prinzip der Softwareentwicklung.





pyautogui

Definition:


pyautogui ist eine Python-Bibliothek, die die Automatisierung von Maus- und Tastatureingaben auf dem Bildschirm ermöglicht. Sie wird oft für Aufgaben wie das Erstellen von Skripten zur GUI-Automatisierung, Bildschirmaufnahmen und mehr verwendet.


Kontext in Python:


pyautogui kann in verschiedenen Anwendungsfällen nützlich sein, einschließlich der Automatisierung von Aufgaben, bei denen menschliche Interaktion auf dem Bildschirm erforderlich ist. Es ermöglicht das Steuern der Mausposition, das Klicken von Tasten und das Erkennen von Bildschirminhalten.


Beispiele:


1. Mausbewegung und Klick mit pyautogui:

Python Code

  import pyautogui

  # Bewegung der Maus zur Position (100, 100)
  pyautogui.moveTo(100, 100)

  # Klick mit der linken Maustaste
  pyautogui.click()
  

2. Bildschirmaufnahme mit pyautogui:

Python Code

  import pyautogui

  # Erfassen eines Teils des Bildschirms
  screenshot = pyautogui.screenshot(region=(0, 0, 800, 600))

  # Speichern des Screenshots
  screenshot.save('screenshot.png')
  

Verwandte Bibliotheken


1. Selenium

2. Requests

3. Beautiful Soup


Wichtige Hinweise:

  1. pyautogui ermöglicht das Erstellen von Skripten zur Automatisierung von wiederkehrenden Aufgaben.
  2. Es erfordert eine genaue Positionierung auf dem Bildschirm, daher ist die Kenntnis der Bildschirmauflösung wichtig.





pytest

Definition:


pytest ist ein Testing-Framework für Python, das es einfacher macht, einfache Unit-Tests sowie komplexe funktionale Tests durchzuführen. Es ist bekannt für seine einfach zu schreibende Syntax und seine Fähigkeit, als mehr als nur einfaches Unit-Testing-Framework zu agieren.


Kontext in Python:


pytest wird weitgehend in der Python-Community verwendet und ist mit Python's Standardbibliothek und mit Drittanbieter-Bibliotheken kompatibel. Es bietet nützliche Features wie Fixtures, Parameterisierung von Tests und eine leistungsfähige CLI.


Beispiele:


1. Einfacher Test:

Python Code

  def test_addition():
      assert 1 + 1 == 2
  

2. Test mit Fixtures:

Python Code

  import pytest

  @pytest.fixture
  def sample_data():
      return {'key': 'value'}

  def test_using_fixture(sample_data):
      assert sample_data['key'] == 'value'
  

Verwandte Bibliotheken


1. unittest

2. Selenium

3. Beautiful Soup


Wichtige Hinweise:

  1. pytest unterstützt auch das Ausführen von unittest-Testsuites.
  2. Es ist möglich, eigene Plugins für pytest zu entwickeln.





Q



Queues

Definition:


Ein Queue (Warteschlange) ist eine lineare Datenstruktur, die das FIFO-Prinzip (First In, First Out) verfolgt. Das heißt, das erste Element, das hinzugefügt wird, wird auch als erstes wieder entfernt.


Kontext in Python


In Python gibt es mehrere Möglichkeiten, Queues zu implementieren. Sie können Listen verwenden, aber für eine effizientere Implementierung ist die Verwendung der `queue` Bibliothek empfehlenswert.


Beispiele


Python Code

from queue import Queue

# Queue erstellen
my_queue = Queue()

# Elemente hinzufügen
my_queue.put(1)
my_queue.put(2)
my_queue.put(3)

# Element entfernen
popped = my_queue.get()
        

Verwandte Konzepte


1. Stacks: Das Gegenteil von Queues, funktioniert nach dem LIFO-Prinzip.

2. Deques: Doppelt endenoffene Queues, die Einschübe und Löschungen an beiden Enden ermöglichen.


Wichtige Hinweise:

  1. Das FIFO-Prinzip macht Queues ideal für Aufgaben wie Auftragsverwaltung, Datenströme und mehr.





R



Ravel

Definition:


Ravel ist ein Prozess, bei dem ein mehrdimensionales Array in ein eindimensionales Array umgewandelt wird. Im Gegensatz zu 'Flatten' erfolgt dies in der Regel ohne eine Kopie des ursprünglichen Arrays zu erzeugen.


Kontext in Python


In Python wird die Ravel-Funktion häufig in der NumPy-Bibliothek verwendet, um die Dimensionalität von Arrays zu reduzieren, während Speicherplatz gespart wird.


Beispiel


Python Code

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
flattened_arr = arr.ravel()
        

Verwandte Konzepte


1. Flatten: Ähnlich wie Ravel, aber erzeugt eine Kopie des Arrays.

2. Reshaping: Änderung der Form eines Arrays.


Wichtige Hinweise:

  1. Bei 'Ravel' sollte man vorsichtig sein, da Änderungen am resultierenden Array sich auch auf das ursprüngliche Array auswirken können.





Read the Docs

Definition:


Read the Docs ist eine Web-Plattform, die das Hosting, die Versionierung und das Teilen von Software-Dokumentation ermöglicht. Sie ist eng mit der Python-Community verbunden und oft das bevorzugte Medium für Python-Projekte, um ihre Dokumentation bereitzustellen. Der Dienst verwendet Sphinx und reStructuredText als Hauptwerkzeuge für die Dokumentationserstellung.


Hauptfunktionen:


Automatische Aktualisierungen: Synchronisiert mit Repositories auf Plattformen wie GitHub oder GitLab, um die Dokumentation automatisch zu aktualisieren, wenn Änderungen vorgenommen werden.

Versionierung: Ermöglicht das Hosting von Dokumentation für verschiedene Versionen einer Software.

Suchfunktion: Bietet eine effiziente Volltextsuche innerhalb der gesamten Dokumentation.


Anwendung


Ein Read the Docs-Projekt kann einfach durch Verknüpfung mit einem Repository und Auswahl der entsprechenden Konfigurationsoptionen eingerichtet werden. Nach der Aktivierung wird die Dokumentation automatisch generiert und bei jeder Aktualisierung des Repositorys aktualisiert.


Beispiele


Die Django-Webframework-Dokumentation oder die Pandas-Bibliothek verwenden Read the Docs, um ihre umfangreichen Dokumentationen bereitzustellen.

Verwandte Konzepte


1. Sphinx: Das Werkzeug, das häufig für die Erstellung der Dokumentation verwendet wird, die auf Read the Docs gehostet wird.


Wichtige Hinweise:

  1. Custom Domains: Es ist möglich, eine benutzerdefinierte Domain für das Projekt einzurichten.
  1. PDF & ePub: Die Plattform bietet Möglichkeiten, die Dokumentation in verschiedenen Formaten wie PDF oder ePub herunterzuladen.





Requests

Definition:


Die Requests-Bibliothek ist eine populäre Python-Bibliothek zur Durchführung von HTTP-Anfragen. Sie ermöglicht das Senden von HTTP/1.1-Anfragen und verfügt über integrierte Funktionen für viele Aufgaben, darunter das Senden und Empfangen von Daten, das Authentifizieren und das Verwalten von Sitzungen.


Kontext in Python:


In Python wird die Requests-Bibliothek oft verwendet, um Web-APIs abzufragen, Daten von Websites abzurufen oder andere serverseitige Aktionen durchzuführen.


Beispiele:


1. GET-Anfrage:

Python Code

  import requests

  response = requests.get('https://www.example.com')
  print(response.text)
  

2. POST-Anfrage:

Python Code

  payload = {'key1': 'value1', 'key2': 'value2'}
  response = requests.post('https://httpbin.org/post', data=payload)
  print(response.json())
  

Verwandte Bibliotheken


1. urllib

2. HTTPx

3. Web Driver


Wichtige Hinweise:

  1. Bei der Verwendung von Requests sollte man die Nutzungsrichtlinien und Rate-Limits der abgefragten Webseite beachten.
  2. Es ist möglich, benutzerdefinierte Header und Authentifizierungsinformationen zu senden.





Reshaping

Definition:


Reshaping bezeichnet die Änderung der Form eines Arrays, ohne seine Daten zu ändern. Dies ist besonders nützlich, wenn man die Dimensionen eines Arrays für bestimmte Operationen anpassen muss.


Kontext in Python


In Python kann man das Reshaping eines Arrays mit der Methode reshape() in der NumPy-Bibliothek durchführen.


Beispiel


Python Code

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
reshaped_arr = arr.reshape(2, 3)

        

Verwandte Konzepte


1. Flatten: Umwandlung eines mehrdimensionalen Arrays in ein eindimensionales Array.

2. Slicing: Teilausschnitte aus Arrays herausschneiden.


Wichtige Hinweise:

  1. Die Anzahl der Elemente muss vor und nach dem Reshaping gleich bleiben.





RESTful API

Definition:


RESTful API steht für Representational State Transfer Application Programming Interface. Es handelt sich um eine Art von Web-API, die die Grundprinzipien von REST befolgt. Eine RESTful API ermöglicht die Interaktion mit Ressourcen (z.B. Datenobjekte oder Dienste) über HTTP-Methoden wie GET, POST, PUT und DELETE.


Hauptmerkmale:


Zustandslosigkeit: ede Anfrage vom Client zum Server muss alle Informationen enthalten, die der Server benötigt, um die Anfrage zu verstehen und zu verarbeiten.

Client-Server-Architektur: Die Client-Server-Architektur trennt die Benutzeroberfläche von den Daten.

Ressourcenorientiert: RESTful APIs fokussieren sich auf die Ressource und wie der Zustand der Ressource geändert wird, normalerweise durch HTTP-Methoden.


Beispiele


1. Abruf von Daten mit der GET-Methode

Python Code

  import requests

  response = requests.get('https://api.example.com/items')
  items = response.json()
  

2. Datenaktualisierung mit der PUT-Methode

Python Code

  payload = {'key1': 'value1', 'key2': 'value2'}
  response = requests.put('https://api.example.com/items/42', data=payload)
  

Verwandte Konzepte


1. API: Allgemeiner Überbegriff für Schnittstellen zwischen verschiedenen Softwareanwendungen.

2. JSON: Häufig verwendetes Format für den Datenaustausch in RESTful APIs.

3. OAuth: Ein Authentifizierungsstandard, der oft in Kombination mit RESTful APIs verwendet wird.


Wichtige Hinweise:

  1. Obwohl RESTful APIs aufgrund ihrer Skalierbarkeit und Einfachheit weit verbreitet sind, sind sie nicht immer die beste Wahl für alle Anwendungen. Für komplexere Abfragebedürfnisse könnte beispielsweise GraphQL besser geeignet sein.





S



Seaborn

Definition:


Seaborn ist eine Python-Datenvisualisierungsbibliothek, die auf Matplotlib aufbaut. Sie bietet eine höhere Abstraktionsebene und eine ansprechendere Ästhetik für komplexe Datenvisualisierungen. Seaborn ist besonders nützlich für statistische Modelle und wird oft in wissenschaftlichen Arbeiten, Datenanalyseprojekten und Machine-Learning-Anwendungen verwendet.


Hauptmerkmale:


Statistische Plots: Einfach zu erstellende komplexe Plots wie Heatmaps, Violin-Plots und Pair Plots.

Integration mit Pandas: Nahtlose Unterstützung für Pandas DataFrames, was den Datenvisualisierungsprozess vereinfacht.

Theming und Farbpaletten: Umfangreiche Optionen für die Anpassung der Ästhetik deiner Plots.


Beispiele


1. Heatmap

Python Code

  import seaborn as sns
  import numpy as np

  data = np.random.rand(10, 10)
  sns.heatmap(data)
  

2. Violin-Plot

Python Code

  sns.violinplot(x='day', y='total_bill', data=tips)
  

3. Pair Plot

Python Code

  sns.pairplot(iris, hue='species')

  

Verwandte Konzepte


1. Matplotlib: Seaborn baut auf Matplotlib auf und erweitert dessen Funktionalität.

2. Pandas: Seaborn kann leicht mit Pandas DataFrames interagieren.

3. Jupyter Notebook & Jupyter Lab: Seaborn-Plots können direkt in Jupyter-Umgebungen angezeigt werden.


Wichtige Hinweise:

  1. Seaborn ist hervorragend für explorative Datenanalyse geeignet, kann jedoch aufgrund der hohen Abstraktionsebene weniger flexibel sein als Matplotlib für bestimmte spezialisierte Anwendungen.





scikit-learn

Definition:


scikit-learn ist eine Open-Source-Bibliothek für die Programmiersprache Python, die speziell für Machine Learning entwickelt wurde. Sie ist bekannt für ihre Benutzerfreundlichkeit und Vielseitigkeit und wird oft für Supervised und Unsupervised Learning-Aufgaben verwendet.


Hauptmerkmale:


Einfache Schnittstellen: Bietet eine konsistente API für verschiedene Machine Learning-Modelle.

Algorithmenvielfalt: Enthält eine breite Palette von Algorithmen für Klassifizierung, Regression, Clustering und mehr.

Pipeline-Konstruktion: Ermöglicht die einfache Verkettung von Daten-Preprocessing und Modell-Training.


Beispiele


1. Klassifizierung mit einem Decision Tree

Python Code

  from sklearn.datasets import load_iris
  from sklearn.model_selection import train_test_split
  from sklearn.tree import DecisionTreeClassifier

  iris = load_iris()
  X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)

  clf = DecisionTreeClassifier()
  clf.fit(X_train, y_train)

  

2. Clustering mit K-Means

Python Code

  from sklearn.cluster import KMeans

  kmeans = KMeans(n_clusters=3)
  kmeans.fit(X_train)

  

3. Daten-Normalisierung

Python Code

  from sklearn.preprocessing import StandardScaler

  scaler = StandardScaler()
  X_train_scaled = scaler.fit_transform(X_train)
  

Verwandte Bibliotheken


1. NumPy: Für komplexe numerische Algorithmen.

2. SciPy: Für wissenschaftliche und technische Berechnungen.

3. Matplotlib: Für die Datenvisualisierung, arbeitet gut mit NumPy zusammen.


Wichtige Hinweise:

  1. scikit-learn legt großen Wert auf die Dokumentation und bietet viele Tutorials und Beispiele, was es zu einer ausgezeichneten Wahl für Anfänger im Bereich Machine Learning macht.






SciPy (Scientific Python)

Definition:


SciPy ist eine Open-Source-Bibliothek für Python, die für wissenschaftliches und technisches Computing entwickelt wurde. Sie baut auf NumPy auf und bietet eine Vielzahl von Werkzeugen und Algorithmen für Aufgaben wie Optimierung, Statistik, Signalverarbeitung und vieles mehr.


Hauptmerkmale:


Modulare Struktur: SciPy ist in verschiedene Untermodule unterteilt, die jeweils bestimmte wissenschaftliche Computing-Anforderungen abdecken.

Optimierung: Beinhaltet Algorithmen zur Lösung von Minimierungs- und Gleichungsproblemen.

Statistik: Bietet umfangreiche Funktionen für statistische Analysen.


Beispiele


1. Lineare AlgebraLösen eines linearen Gleichungssystems.

Python Code

  from scipy.linalg import solve
  import numpy as np

  a = np.array([[3, 2, 0], [1, -1, 0], [0, 5, 1]])
  b = np.array([2, 4, -1])

  x = solve(a, b)


  

2. OptimierungMinimierung einer Funktion.

Python Code

  from scipy.optimize import minimize

  def objective_function(x):
    return x[0]**2 + x[1]**2

  result = minimize(objective_function, [1, 1])
  

3. SignalverarbeitungFourier-Transformation eines Signals.

Python Code

  from scipy.fftpack import fft

  signal = np.array([0., 1., 0., -1.])
  fourier = fft(signal)

  

Verwandte Bibliotheken


1. NumPy: Für komplexe numerische Algorithmen.

2. scikit-learn: Für Machine Learning-Algorithmen.

3. Matplotlib: Für die Datenvisualisierung, arbeitet gut mit NumPy zusammen.


Wichtige Hinweise:

  1. SciPy ist besonders leistungsfähig, wenn es um den Umgang mit großen Datenmengen und komplexen Algorithmen geht, und es ist eng mit der wissenschaftlichen Python-Community verbunden.





Scope

Definition:


Der Scope (Gültigkeitsbereich) einer Variable bezeichnet den Bereich in einem Programm, in dem die Variable zugänglich ist und manipuliert werden kann.


Kontext in Python


In Python gibt es verschiedene Arten von Scopes wie den globalen, lokalen und den Verschachtelungs-Scope. Python folgt der LEGB-Regel (Local, Enclosing, Global, Built-in), um zu bestimmen, welcher Scope bei einer Variablenreferenz verwendet wird.


Beispiele


Python Code

# Global Scope
x = 10

def my_function():
    # Local Scope
    y = 5
    print(x, y)

my_function()
        

Verwandte Konzepte


1. Variablen: Container für Daten, deren Scope variieren kann.

2. Funktionen: In Funktionen definierte Variablen haben in der Regel einen lokalen Scope.

3. Klassen: Mitgliedsvariablen in Klassen können verschiedene Scopes haben.


Wichtige Hinweise:

  1. Die Modifikation globaler Variablen innerhalb von Funktionen sollte vermieden werden, um Seiteneffekte zu reduzieren.
  2. Der Gebrauch von 'global' und 'nonlocal' Schlüsselwörtern kann den Scope einer Variable ändern.





Selenium

Definition:


Selenium ist ein Open-Source-Werkzeug, das hauptsächlich für das Automatisieren von Webanwendungen zu Testzwecken verwendet wird. Es ermöglicht das Steuern eines Webbrowsers und das Interagieren mit Webseiten, als würde ein Mensch die Aufgaben erledigen.


Kontext in Python:


In Python kann Selenium mit dem Selenium WebDriver verwendet werden. Das Selenium-Paket muss installiert werden und es erlaubt das Automatisieren von Webbrowser-Aktionen.


Beispiele


1. Browser öffnen und eine Webseite besuchen:

Python Code

  from selenium import webdriver

  driver = webdriver.Chrome()
  driver.get('https://www.google.com')
  

2. Elemente finden und interagieren:

Python Code

  search_box = driver.find_element_by_name('q')
  search_box.send_keys('Selenium')
  search_box.submit()
  

Verwandte Bibliotheken


1. WebDriver

2. Beautiful Soup

3. PyAutoGUI


Wichtige Hinweise:

  1. Selenium-Tests können langsam sein, da sie in einem echten Browser ausgeführt werden.
  2. Es wird empfohlen, spezielle Testumgebungen für Selenium-Tests zu verwenden.





Semantic Analysis

Definition:


Die semantische Analyse ist eine Phase in der Verarbeitungskette eines Compilers oder Interpreters, die auf die lexikalische und syntaktische Analyse folgt. In dieser Phase wird die Bedeutung des Codes überprüft, z.B. ob Variablen deklariert wurden, bevor sie verwendet werden, oder ob Funktionen mit den richtigen Argumenten aufgerufen werden.


Kontext in Python


In Python wird die semantische Analyse durch den Interpreter durchgeführt. Dabei werden unter anderem Typüberprüfungen und Scope-Regeln angewandt, um sicherzustellen, dass der Code logisch konsistent ist.


Beispiele


Python Code

# Beispiel: Semantischer Fehler
x = 'Hallo'
y = x + 5  # Fehler, da ein String und eine Zahl nicht addiert werden können
        

Verwandte Konzepte


1. Syntaxanalyse

2. Lexikalische Analyse

3. Compiler


Wichtige Hinweise:

  1. Fehler in der semantischen Analyse sind oft schwieriger zu finden als syntaktische oder lexikalische Fehler.
  2. Ein Code kann syntaktisch korrekt sein, aber aufgrund von semantischen Fehlern nicht ausführbar sein.





Shutil Library (Shell Utility Library)

Definition:


Die 'shutil^-Bibliothek ist eine Python-Standardbibliothek, die eine Sammlung von Dateioperationen auf höherem Niveau bietet. Sie beinhaltet Funktionen zum Kopieren, Verschieben, Umbenennen und Löschen von Dateien und Verzeichnissen.


Hauptmerkmale:


Datei- und Verzeichniskopie: Kopiert Dateien und Verzeichnisbäume.

Datei- und Verzeichnisbewegung: Verschiebt Dateien und Verzeichnisse.

Archivierung: Unterstützt das Erstellen und Lesen von Archiven wie Zip- oder Tar-Dateien.


Beispiele


1. Datei kopieren

Python Code

  import shutil

  shutil.copy('source.txt', 'destination.txt')
  

2. Verzeichnisbaum kopieren

Python Code

  shutil.copytree('source_directory', 'destination_directory')
  

3. Datei verschieben

Python Code

  shutil.move('source.txt', 'destination_folder')
  

Verwandte Konzepte


1. OS Library: Für grundlegendere Operationen auf Betriebssystemebene.

2. Zipfile Library: Für spezialisierte Interaktionen mit Zip-Archiven.


Wichtige Hinweise:

  1. Die 'shutil'-Bibliothek kann irreversiblen Schaden verursachen, wenn sie inkorrekt verwendet wird, da sie die Fähigkeit hat, Dateien und Verzeichnisse zu löschen. Daher ist Vorsicht geboten.
  1. Für komplexe Datei-Manipulationsaufgaben bietet 'shutil' einfache und leicht verständliche Methoden, jedoch kann die Geschwindigkeit in großen Operationen beeinträchtigt sein.





Slicing

Definition:


Slicing ist eine Technik in Python, mit der man Teilmengen eines iterierbaren Objekts, wie z.B. einer Liste oder eines Arrays, extrahieren kann. Es verwendet eine Notation, die den Start-, Stop- und Schrittwert angibt, um ein neues, geschnittenes Objekt zu erzeugen. Das ursprüngliche Objekt bleibt dabei unverändert.


Beispiel:

Python Code

  # Liste erstellen
  my_list = [0, 1, 2, 3, 4, 5]

  # Slicing: Vom Index 1 bis 4
  sliced_list = my_list[1:5]

  # Ergebnis
  print(sliced_list)  # Ausgabe: [1, 2, 3, 4]

  

Verwandte Konzepte


1. List Comprehensions: Kurzschreibweise zur Erstellung von Listen.

2. Array Slicing: Spezialfall des Slicings für Arrays, oft in Verbindung mit NumPy.

2. String Slicing: Anwendung des Slicings auf Zeichenketten.


Wichtige Hinweise:

  1. Die Indizierung in Python beginnt bei 0.
  1. Ein negativer Schrittwert invertiert die Reihenfolge der Elemente.





Sphinx

Definition:


Sphinx ist ein Dokumentationserstellungstool, das speziell für die Programmiersprache Python entwickelt wurde. Es generiert aus strukturierten Textdateien, meistens geschrieben in reStructuredText, eine umfangreiche und gut strukturierte Dokumentation in verschiedenen Formaten wie HTML, PDF oder ePub.


Hauptfunktionen:


Autodoc: Automatische Extraktion von Python-Docstrings zur Einbindung in die Dokumentation.

Cross-Referencing: Einfache Möglichkeit, Querverweise zwischen verschiedenen Dokumentationsteilen zu erstellen.

Erweiterbarkeit: Zahlreiche Plugins und Erweiterungen, um die Funktionalität nach Bedarf zu erhöhen.


Anwendung


Sphinx kann über die Kommandozeile installiert und gesteuert werden. Ein einfaches Projekt kann mit dem Befehl 'sphinx-quickstart' erstellt werden.

Python Code

  # Sphinx installieren
  pip install sphinx

  # Ein neues Projekt erstellen
  sphinx-quickstart
  

Beispiel

Python Code

  .. function:: my_function(arg1, arg2)
   
     :param arg1: Beschreibung für arg1
     :param arg2: Beschreibung für arg2
     :returns: Was die Funktion zurückgibt

  

Verwandte Konzepte


1. Read the Docs: Ein beliebter Online-Dienst, der Sphinx verwendet, um Dokumentationen zu hosten.

2. Docstrings: Die Grundlage für die automatische Dokumentationserstellung durch Sphinx.


Wichtige Hinweise:

  1. Versionskontrolle: Sphinx unterstützt die Dokumentation verschiedener Versionen einer Software.
  1. Internationalisierung: Mehrsprachige Dokumentationen sind möglich.





Stacks

Definition:


Ein Stack ist eine lineare Datenstruktur, die nach dem LIFO-Prinzip (Last In, First Out) arbeitet. Das bedeutet, das zuletzt hinzugefügte Element wird als erstes wieder entfernt.


Kontext in Python


In Python kann ein Stack leicht mit einer Liste implementiert werden, da Listen in Python dynamisch sind und die Methoden `append()` und `pop()` unterstützen, die für die Stack-Operationen erforderlich sind.


Beispiele


Python Code

# Stack mit Listen erstellen
my_stack = []

# Elemente hinzufügen
my_stack.append(1)
my_stack.append(2)
my_stack.append(3)

# Element entfernen
popped = my_stack.pop()
        

Verwandte Konzepte


1. Queues: Eine weitere lineare Datenstruktur, die auf dem FIFO-Prinzip basiert.

2. Linked Lists: Stacks können auch mit verketteten Listen implementiert werden.


Wichtige Hinweise:

  1. Stacks sind nützlich für Anwendungen wie das Umkehren von Wörtern, Undo-Funktionen in Texteditoren und so weiter.





String Concatenation

Definition:


String Concatenation bezieht sich auf den Prozess, zwei oder mehr Strings in Python zu einem einzigen String zu verbinden.


Kontext in Python


Python bietet verschiedene Möglichkeiten zur String Concatenation, darunter der `+`-Operator, die `join()`-Methode und String-Interpolation.


Beispiele


Python Code

# Mit dem + Operator
string1 = "Hallo"
string2 = "Welt"
result = string1 + " " + string2  # Ergebnis: "Hallo Welt"

# Mit der join()-Methode
result = " ".join([string1, string2])  # Ergebnis: "Hallo Welt"
        

Verwandte Konzepte


1. String Interpolation: Eine fortgeschrittene Methode zur Verbindung von Strings.

2. String Manipulation: Generelle Techniken zur Manipulation von Strings.


Wichtige Hinweise:

  1. Verwendung des `+`-Operators in einer Schleife für String Concatenation kann ineffizient sein.





String Formatting

Definition:


String Formatting bezieht sich auf die Methode, um die Darstellung von Strings in Python zu steuern. Es ermöglicht die Einbindung von Variablen und die Formatierung von Text und Zahlen in Strings.


Kontext in Python


In Python gibt es verschiedene Möglichkeiten für das String Formatting, darunter die `format()` Methode, f-Strings und die ältere Prozentzeichen-Notation.


Beispiele


Python Code

# Mit der format()-Methode
greeting = "Hallo, {}!".format("Sascha")

# Mit f-Strings (ab Python 3.6)
name = "Sascha"
greeting = f"Hallo, {name}!"

# Mit Prozentzeichen-Notation
greeting = "Hallo, %s!" % "Sascha"
        

Verwandte Konzepte


1. String Interpolation: Direkte Einbettung von Variablen in Strings.

2. String Concatenation: Das einfache Verbinden von Strings.


Wichtige Hinweise:

  1. Die Wahl der Methode für das String Formatting hängt von den spezifischen Anforderungen und der Python-Version ab.





String Interpolation

Definition:


String Interpolation ist eine Technik zur Einbettung von Variablen oder Ausdrücken in einen String, um einen neuen, zusammengesetzten String zu erzeugen.


Kontext in Python


Python bietet mehrere Methoden zur String Interpolation, darunter f-Strings, die `format()`-Methode und die Prozentzeichen-Notation.


Beispiele


Python Code

# Mit f-Strings (ab Python 3.6)
name = "Sascha"
greeting = f"Hallo, {name}!"
  
# Mit der format()-Methode
greeting = "Hallo, {}!".format(name)

# Mit Prozentzeichen-Notation
greeting = "Hallo, %s!" % name
        

Verwandte Konzepte


1. String Concatenation: Das einfache Verbinden von Strings.

2. String Formatting: Eine erweiterte Methode zur Gestaltung von Strings.


Wichtige Hinweise:

  1. f-Strings sind in der Regel die schnellste und lesbarste Methode für String Interpolation in Python.





Sphinx

String Manipulation:


String Manipulation bezeichnet in Python das Bearbeiten und Verändern von String-Objekten. Obwohl Strings in Python unveränderlich (immutable) sind, lassen sie sich durch verschiedene Methoden und Operatoren dennoch manipulieren, indem neue Strings aus bestehenden erzeugt werden.


Beispiel:

Python Code

  # String erstellen
  my_string = "Hello World"

  # Uppercase
  upper_string = my_string.upper()

  # Ergebnis
  print(upper_string)  # Ausgabe: "HELLO WORLD"

  

Beispiel

Python Code

  .. function:: my_function(arg1, arg2)
   
     :param arg1: Beschreibung für arg1
     :param arg2: Beschreibung für arg2
     :returns: Was die Funktion zurückgibt

  

Verwandte Konzepte


1. String Concatenation: Das Verbinden von zwei oder mehreren Strings.

2. String Slicing: String Slicing


Wichtige Hinweise:

  1. Python Strings sind unveränderlich, aber durch Methoden wie '.replace()', '.upper()', und '.split()' lassen sich leicht neue Strings erzeugen.
  1. String-Methoden geben neue String-Objekte zurück; das ursprüngliche Objekt bleibt unverändert.





String Slicing

Definition:


String Slicing ist eine Technik in Python, mit der man Teilmengen eines Strings extrahieren kann. Ähnlich wie beim allgemeinen Slicing werden Start-, Stop- und Schrittwerte angegeben, um ein neues, geschnittenes String-Objekt zu erzeugen. Das ursprüngliche String-Objekt bleibt dabei unverändert.


Beispiel:

Python Code

  # String erstellen
  my_string = "PythonWorld"

  # Slicing: Vom Index 0 bis 5
  sliced_string = my_string[0:6]

  # Ergebnis
  print(sliced_string)  # Ausgabe: "Python"


  

Verwandte Konzepte


1. Slicing: Allgemeines Konzept der Teilmengenextraktion aus iterierbaren Objekten.

2. String Concatenation: Verknüpfung von zwei oder mehr Strings.

2. String Manipulation: Verschiedene Techniken zur Bearbeitung von Strings.


Wichtige Hinweise:

  1. Die Indizierung in Python beginnt bei 0.
  1. Ein negativer Schrittwert invertiert die Reihenfolge der Zeichen.





Syntax Analysis

Definition:


Syntaxanalyse, auch als Parsing bekannt, ist der Prozess, bei dem ein Compiler oder Interpreter die Struktur eines Quellcodes überprüft. Sie wird durchgeführt, um sicherzustellen, dass der Code die grammatikalischen Regeln der Programmiersprache einhält.


Kontext in Python


In Python erfolgt die Syntaxanalyse automatisch beim Ausführen eines Programms. Fehler in der Syntax werden als SyntaxError gemeldet, wodurch der Entwickler darauf hingewiesen wird, den Code zu korrigieren.


Beispiele


Python Code

# Beispiel für SyntaxError in Python
try:
    eval('x === y')
except SyntaxError:
    print("SyntaxError wurde erkannt.")
        

Verwandte Konzepte


1. Lexikalische Analyse

2. Semantische Analyse

3. Compiler


Wichtige Hinweise:

  1. Syntaxanalyse ist nur einer der Schritte im Kompilierungs- oder Interpretationsprozess.
  2. Fehler in der Syntax sind in der Regel einfach zu beheben, können aber bei großen Programmen schwer zu finden sein.





Sys Library (System Library)

Definition:


Die 'sys' Bibliothek in Python ist eine Standardbibliothek, die Zugriff auf einige Variablen und Funktionen bietet, die eng mit dem Python-Interpreter interagieren. Sie wird oft verwendet, um Befehlszeilenargumente zu lesen, das Programm zu beenden oder die Standard-Ein- und Ausgabe-Streams zu manipulieren


Hauptmerkmale:


Befehlszeilenargumente: Zugriff auf die Befehlszeilenargumente über 'sys.argv'

Programm beenden: Beendet den Python-Interpreter mit 'sys.exit()'.

Pfadmodifikation: Ermöglicht die Manipulation des 'PYTHONPATH' durch 'sys.path'

Beispiele


1. Befehlszeilenargumente lesen

Python Code

  import sys

print("Script name:", sys.argv[0])
print("First argument:", sys.argv[1])
  

2. Programm beenden

Python Code

  sys.exit("Error message")
  

3. Pfadmodifikation

Python Code

  sys.path.append('/path/to/my/module')
  

Verwandte Konzepte


1. Argparse: Eine modernere Methode zum Parsen von Befehlszeilenargumenten.

2. OS Library: Für andere systembezogene Funktionen, einschließlich der Interaktion mit dem Betriebssystem.


Wichtige Hinweise:

  1. Die 'sys' Bibliothek ist plattformunabhängig, aber einige Funktionen können systemabhängig sein.
  1. Vorsicht ist geboten, wenn man 'sys.path' zur Laufzeit ändert, da dies zu unerwarteten Verhalten führen kann.





T



Template String

Definition:


Ein Template String ist ein spezieller String-Typ in Python, der Platzhalter enthält. Diese Platzhalter können durch tatsächliche Werte ersetzt werden, um dynamischen Text zu generieren.


Kontext in Python


In Python werden Template Strings in der Standardbibliothek `string` über die Klasse `Template` bereitgestellt. Sie sind eine sicherere und benutzerfreundlichere Möglichkeit, Strings dynamisch zu formatieren.


Beispiel


Python Code

from string import Template

t = Template('Hallo, $name!')
message = t.substitute(name='Sascha')
        

Verwandte Konzepte


1. String Interpolation: Eine andere Methode zur Einbettung von Variablen in Strings.

2. String Formatting: Allgemeine Methoden zur Formatierung von Strings.


Wichtige Hinweise:

  1. Template Strings sind eine sicherere Methode zur String-Formatierung, insbesondere wenn die Eingabe von externen Quellen stammt.





Threading

Definition:


Threading bezeichnet die parallele Ausführung von mehreren "Threads" (Unterprozessen) innerhalb eines einzigen Prozesses. Jeder Thread führt einen spezifischen Aufgabenbereich aus und teilt sich dabei Ressourcen wie Speicher mit anderen Threads im selben Prozess.


Kontext in Python


Das threading Modul in Python ermöglicht die einfache Erstellung und Verwaltung von Threads. Es ist besonders nützlich für I/O-bound oder Netzwerkaufgaben, die gleichzeitig ablaufen sollen.


Beispiele


Python Code

import threading

def print_numbers():
    for i in range(10):
        print(i)

# Erzeugung von Threads
t1 = threading.Thread(target=print_numbers)
t2 = threading.Thread(target=print_numbers)

# Start der Threads
t1.start()
t2.start()

# Warte bis beide Threads abgeschlossen sind
t1.join()
t2.join()
        

Verwandte Konzepte


1. Multiprocessing: Für CPU-bound Aufgaben.

2. Asynchronous Processing: Eine andere Möglichkeit, parallele Ausführung zu erreichen.

3. Concurrency: Übergeordnetes Konzept der parallelen Ausführung.


Wichtige Hinweise:

  1. Das Global Interpreter Lock (GIL) in CPython kann die parallele Ausführung von Threads in CPU-bound Aufgaben einschränken.
  2. Thread-Sicherheit muss beachtet werden, um Probleme wie Deadlocks zu vermeiden.





Typing Modul

Definition:


Das Typing-Modul in Python bietet Unterstützung für Typenhinweise. Typenhinweise sind Zusätze zu Python-Quellcode, die den erwarteten Datentyp von Variablen, Funktionsargumenten und Rückgabewerten angeben.


Kontext in Python


Das Typing-Modul wird vor allem zur Verbesserung der Lesbarkeit und zur statischen Code-Analyse verwendet. Es ist nicht zur Laufzeitüberprüfung der Typen gedacht.


Beispiele


Python Code

from typing import List, Tuple

def add(a: int, b: int) -> int:
    return a + b

def get_names() -> List[str]:
    return ["Alice", "Bob"]
        

Verwandte Konzepte


1. Variablen: Verwendung von Typenhinweisen bei der Deklaration.

2. Funktionen: Typenhinweise für Argumente und Rückgabewerte.

3. Klassen: Typenhinweise können auch in Klassen verwendet werden.


Wichtige Hinweise:

  1. Typenhinweise sind optional und sollten sparsam verwendet werden, um die Lesbarkeit zu verbessern, aber nicht zu stören.
  2. Die Verwendung des Typing-Moduls ist in Python 3.5 und höher möglich.





U



Unittest

Definition:


unittest ist ein Testframework für Python, das ursprünglich als Teil der Standardbibliothek eingeführt wurde. Es unterstützt Testautomatisierung, Aggregation von Tests und gleichzeitig die Isolierung von Testmethoden.


Kontext in Python:


In Python ist unittest ein Modul in der Standardbibliothek, das Entwicklern das Schreiben von verschiedenen Arten von Tests, einschließlich Unit-Tests und Integrationstests, erleichtert.


Beispiele


1. Einfacher Test: Testen der upper() Methode für Strings.

Python Code

  import unittest
  
  class TestStringMethods(unittest.TestCase):
  
      def test_upper(self):
          self.assertEqual('foo'.upper(), 'FOO')
  

2. SetUp und TearDown: Methoden für die Initialisierung und Bereinigung von Ressourcen für Tests.

Python Code

  class TestDatabase(unittest.TestCase):

      def setUp(self):
          self.connection = create_database_connection()

      def tearDown(self):
          self.connection.close()
  

Verwandte Bibliotheken


1. pytest

2. doctest

3. nose


Wichtige Hinweise:

  1. Tests sollten unabhängig und isoliert sein.
  2. Tests können auch als Dokumentation für den Code dienen.





URLLIB

Definition:


Die 'urllib'-Bibliothek in Python ist ein Modulpaket, das viele Funktionen zum Arbeiten mit URLs bietet. Es wird häufig zum Abrufen von Daten über das Internet verwendet.


Kontext in Python:


'urllib' bietet eine einfachere Schnittstelle als die Tiefenebene der HTTP-Protokolle. Es ist ein guter Ausgangspunkt für einfache Web-Scraping-Aufgaben oder API-Aufrufe.


Beispiele:


1. GET-Anfrage:

Python Code

  from urllib.request import urlopen

  response = urlopen('https://www.example.com')
  html = response.read()
  print(html)
  

2. Parameter mit URL verschicken:

Python Code

  from urllib.parse import urlencode
  from urllib.request import Request, urlopen

  url = 'https://www.example.com'
  payload = {'key1': 'value1', 'key2': 'value2'}
  
  full_url = f"{url}?{urlencode(payload)}"
  response = urlopen(full_url)
  print(response.read())
  

Verwandte Bibliotheken


1. Requests

2. HTTPX

3. http.client


Wichtige Hinweise:

  1. 'urllib' wird oft für einfache HTTP-Anfragen verwendet, während 'requests' oder 'httpx' für komplexere Anwendungsfälle besser geeignet sind.
  2. Die Bibliothek bietet auch Möglichkeiten zur URL-Analyse und -Modifikation.





V



Variablen

Definition:


Eine Variable ist ein Container, der einen Wert oder eine Referenz auf eine Datenstruktur speichert. Variablen werden in der Programmierung verwendet, um Daten zu speichern und zu manipulieren.


Kontext in Python


In Python werden Variablen durch den Zuweisungsoperator '=' erstellt und können verschiedene Datentypen wie Integer, Float, String, Liste und viele mehr speichern.


Beispiele


Python Code

# Integer Variable
x = 5

# String Variable
name = "Sascha"

# List Variable
items = [1, 2, 3]
        

Verwandte Konzepte


1. Datentypen: Unterschiedliche Arten von Daten, die in Variablen gespeichert werden können.

2. Scope: Der Gültigkeitsbereich einer Variable im Programm.

3. Immutable vs Mutable: Die Eigenschaft einer Datenstruktur, ob sie verändert werden kann oder nicht.


Wichtige Hinweise:

  1. Variablen in Python sind tatsächlich Bezeichner, die auf Objekte im Speicher verweisen.
  2. Die Wahl aussagekräftiger Variablennamen verbessert die Lesbarkeit des Codes.





Virtual Reality

Definition:


Virtual Reality (VR) ist eine simulierte Erfahrung, die entweder der realen Welt ähnlich oder völlig anders sein kann. Es handelt sich um eine computergenerierte Umgebung, die mit speziellen VR-Headsets erlebt wird.


Kontext in Technologie


Virtual Reality wird in vielen Bereichen eingesetzt, von der Unterhaltung und dem Gaming bis hin zu Schulungen und Therapie. Python wird in der VR-Entwicklung weniger häufig verwendet, aber es gibt spezialisierte Frameworks und Bibliotheken für diese Anwendung.


Beispiele


1. Oculus Rift: Ein beliebtes VR-Headset für immersives Gaming.

2. VR-Simulationen: In der Medizin oder der Luftfahrt werden VR-Simulationen für die Ausbildung eingesetzt.

Verwandte Technologien


1. Augmented Reality

2. Mixed Reality


Wichtige Hinweise:

  1. Die Hardware für Virtual Reality kann teuer sein und hohe Systemanforderungen haben.
  2. Einige Menschen erleben Übelkeit oder Desorientierung, wenn sie VR verwenden.





W



Web Driver

Definition:


Ein Web Driver ist ein Software-Interface, das für die Interaktion mit Webbrowsern entwickelt wurde. Es wird oft in Automatisierungstests, Web Scraping und anderen automatisierten Webinteraktionen verwendet.


Kontext in Python:


In Python wird der Web Driver häufig über die Selenium-Bibliothek verwendet, um Webanwendungen automatisch zu testen oder um Aufgaben wie das Ausfüllen von Formularen oder das Klicken auf Links zu automatisieren.


Beispiele


1. Öffnen einer Webseite:

Python Code

  from selenium import webdriver

  driver = webdriver.Chrome()
  driver.get('https://www.example.com')
  

2. Interaktion mit Web-Elementen:

Python Code

  search_box = driver.find_element_by_name('q')
  search_box.send_keys('Hello World')
  search_box.submit()
  

Verwandte Bibliotheken


1. Selenium

2. Beautiful Soup

3. Requests


Wichtige Hinweise:

  1. Die Verwendung von Web Drivers kann gegen die Nutzungsbedingungen einiger Websites verstoßen.
  2. Es ist wichtig, den Web Driver nach der Verwendung zu schließen, um Ressourcen freizugeben.





Web Scraping

Definition:


Web Scraping bezieht sich auf den Prozess der automatischen Extraktion von Daten aus Webseiten. In Python werden dafür oft Bibliotheken wie 'BeautifulSoup', 'Scrapy' oder 'requests' verwendet.


Hauptmerkmale:


HTML Parsing: Das Durchsuchen und Extrahieren von Informationen aus HTML-Dokumenten.

Automatisierte Anfragen: Senden von HTTP-Anfragen und Empfangen von Antworten.

Datenspeicherung: Gesammelte Daten können in verschiedenen Formaten (CSV, JSON, Datenbanken etc.) gespeichert werden.


Beispiele


1. Einfaches Scraping mit BeautifulSoup

Python Code

  from bs4 import BeautifulSoup
  import requests

  url = 'https://example.com'
  response = requests.get(url)
  soup = BeautifulSoup(response.text, 'html.parser')

  title = soup.title.string  # Holt den Titel der Webseite
  

2. Fortgeschrittenes Scraping mit Scrapy

Python Code

  import scrapy

  class MySpider(scrapy.Spider):
      name = 'myspider'
      start_urls = ['https://example.com']

      def parse(self, response):
        title = response.xpath('//title/text()').extract_first()

  

Verwandte Konzepte


1. HTTP: Grundlagen von HTTP-Anfragen und -Antworten.

2. APIs: Eine sauberere und oft legale Alternative zum Web Scraping.


Wichtige Hinweise:

  1. Beachten Sie stets die Nutzungsbedingungen der jeweiligen Webseite und stellen Sie sicher, dass Ihr Scraping legal ist.
  1. Zu viele Anfragen in kurzer Zeit können zu einer Sperrung Ihrer IP-Adresse führen. Implementieren Sie deshalb Verzögerungen und Respektieren Sie die 'robots.txt' der Webseite.





X


Test X


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum. Donec in efficitur leo. In hac habitasse platea dictumst. Duis rhoncus egestas magna ut fringilla. Duis eget vestibulum quam, eu scelerisque ligula. Sed eget eros accumsan, lacinia erat nec, lobortis tellus. Fusce venenatis posuere magna, eu egestas ipsum. Mauris auctor, sapien vel luctus vulputate, nisi orci iaculis ante, et convallis est nisi et nisl. Sed in semper ex. Pellentesque aliquam, libero a facilisis lacinia, ex mi facilisis mauris, id tempus metus quam a mi. Praesent in libero vel turpis pellentesque egestas sit amet vel nunc. Nunc lobortis dui neque, quis accumsan dolor. Aenean aliquet dignissim semper.


Test X2


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum. Donec in efficitur leo. In hac habitasse platea dictumst. Duis rhoncus egestas magna ut fringilla. Duis eget vestibulum quam, eu scelerisque ligula. Sed eget eros accumsan, lacinia erat nec, lobortis tellus. Fusce venenatis posuere magna, eu egestas ipsum. Mauris auctor, sapien vel luctus vulputate, nisi orci iaculis ante, et convallis est nisi et nisl. Sed in semper ex. Pellentesque aliquam, libero a facilisis lacinia, ex mi facilisis mauris, id tempus metus quam a mi. Praesent in libero vel turpis pellentesque egestas sit amet vel nunc. Nunc lobortis dui neque, quis accumsan dolor. Aenean aliquet dignissim semper.





Y


Test Y


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum. Donec in efficitur leo. In hac habitasse platea dictumst. Duis rhoncus egestas magna ut fringilla. Duis eget vestibulum quam, eu scelerisque ligula. Sed eget eros accumsan, lacinia erat nec, lobortis tellus. Fusce venenatis posuere magna, eu egestas ipsum. Mauris auctor, sapien vel luctus vulputate, nisi orci iaculis ante, et convallis est nisi et nisl. Sed in semper ex. Pellentesque aliquam, libero a facilisis lacinia, ex mi facilisis mauris, id tempus metus quam a mi. Praesent in libero vel turpis pellentesque egestas sit amet vel nunc. Nunc lobortis dui neque, quis accumsan dolor. Aenean aliquet dignissim semper.


Test Y2


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia odio vitae vestibulum. Donec in efficitur leo. In hac habitasse platea dictumst. Duis rhoncus egestas magna ut fringilla. Duis eget vestibulum quam, eu scelerisque ligula. Sed eget eros accumsan, lacinia erat nec, lobortis tellus. Fusce venenatis posuere magna, eu egestas ipsum. Mauris auctor, sapien vel luctus vulputate, nisi orci iaculis ante, et convallis est nisi et nisl. Sed in semper ex. Pellentesque aliquam, libero a facilisis lacinia, ex mi facilisis mauris, id tempus metus quam a mi. Praesent in libero vel turpis pellentesque egestas sit amet vel nunc. Nunc lobortis dui neque, quis accumsan dolor. Aenean aliquet dignissim semper.





Z



Zipfile Library

Definition:


Die 'zipfile^-Bibliothek in Python ist eine Standardbibliothek, die spezialisiert ist auf die Erstellung, das Lesen und das Entpacken von ZIP-Archiven. Sie bietet eine bequeme Schnittstelle, um mit ZIP-Dateien in Python zu arbeiten, und umfasst Methoden zum Komprimieren und Extrahieren von Dateien.


Hauptmerkmale:


ZIP-Dateien erstellen: Erzeugt neue ZIP-Archive und fügt Dateien hinzu.

ZIP-Dateien lesen: Liest Inhalte und Metadaten aus existierenden ZIP-Archiven.

ZIP-Dateien extrahieren: Entpackt Dateien und Verzeichnisse aus einem ZIP-Archiv.


Beispiele


1. ZIP-Datei erstellen

Python Code

  import zipfile

  with zipfile.ZipFile('new_archive.zip', 'w') as myzip:
      myzip.write('example.txt', 'example.txt')
  

2. ZIP-Datei lesen

Python Code

  with zipfile.ZipFile('existing_archive.zip', 'r') as myzip:
      print(myzip.namelist())
  

3. ZIP-Datei extrahieren

Python Code

  with zipfile.ZipFile('existing_archive.zip', 'r') as myzip:
      myzip.extractall('destination_folder')
  

Verwandte Konzepte


1. Shutil Library: Für allgemeine Datei- und Verzeichnisoperationen, einschließlich Archivierung.

2. OS Library: für grundlegendere Datei- und Verzeichnisoperationen.


Wichtige Hinweise:

  1. Die zipfile-Bibliothek unterstützt verschiedene Kompressionsmethoden, aber die am häufigsten verwendete ist 'ZIP_DEFLATED' (Deflate-Kompression).
  1. Bei der Arbeit mit großen ZIP-Dateien sollte man darauf achten, die 'with'-Syntax zu verwenden, um Ressourcen effizient zu verwalten.