Skip to content

1. Einführung in Python

Warum Python?

Python gehört heute zu den wichtigsten Programmiersprachen der Softwareentwicklung. Die Sprache wird in Webanwendungen, Automatisierung, Datenanalyse, Machine Learning, DevOps, wissenschaftlichem Rechnen und vielen weiteren Bereichen eingesetzt.

Im Gegensatz zu vielen klassischen Programmiersprachen legt Python besonderen Wert auf Lesbarkeit und Produktivität. Viele Aufgaben lassen sich mit deutlich weniger Code lösen als in Java, C# oder C++.

In diesem Buch lernen Sie Python aus der Perspektive eines erfahrenen Entwicklers kennen. Der Fokus liegt nicht auf akademischer Theorie, sondern auf der praktischen Entwicklung moderner Anwendungen.

Die Philosophie von Python

Python folgt dem Grundsatz, dass Code vor allem von Menschen gelesen wird. Daher bevorzugt die Sprache einfache, gut lesbare Lösungen gegenüber komplexen Konstruktionen.

Die Grundideen lassen sich im sogenannten "Zen of Python" zusammenfassen:

import this
````

Zu den wichtigsten Prinzipien gehören:

* Lesbarkeit zählt.
* Einfach ist besser als kompliziert.
* Explizit ist besser als implizit.
* Es sollte möglichst nur einen offensichtlichen Weg geben, etwas zu tun.

Diese Philosophie begegnet Ihnen im gesamten Ökosystem der Sprache.

## Python im Vergleich zu Java, C# und C++

Viele Entwickler kommen aus Sprachen wie Java, C# oder C++. Die grundlegenden Konzepte sind vertraut: Variablen, Funktionen, Klassen und Objekte existieren auch in Python.

Dennoch gibt es einige wichtige Unterschiede:

* Weniger Boilerplate-Code
* Dynamische Typisierung
* Keine geschweiften Klammern
* Fokus auf Lesbarkeit
* Umfangreiche Standardbibliothek

Ein einfaches Beispiel:

```java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hallo Welt");
    }
}
print("Hallo Welt")

Python verzichtet bewusst auf viele sprachliche Konstrukte, die in anderen Sprachen erforderlich sind.

Dynamische Typisierung und Type Hints

Python ist dynamisch typisiert. Der Typ einer Variablen wird zur Laufzeit bestimmt.

name = "Alice"
age = 42

Dennoch unterstützen moderne Python-Projekte sogenannte Type Hints:

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

Type Hints verbessern die Dokumentation, die IDE-Unterstützung und die statische Analyse, ändern jedoch nicht das dynamische Verhalten der Sprache.

Alles ist ein Objekt

In Python sind nahezu alle Werte Objekte.

number = 42
text = "Hallo"
values = [1, 2, 3]

Auch Funktionen sind Objekte:

def greet() -> None:
    print("Hallo")


handler = greet

handler()

Dieses Konzept eröffnet viele flexible Programmiermöglichkeiten, die in späteren Kapiteln intensiv genutzt werden.

Referenzen statt Variablenboxen

Variablen enthalten in Python keine Objekte selbst, sondern Referenzen auf Objekte.

a = [1, 2, 3]
b = a

b.append(4)

print(a)

Ausgabe:

[1, 2, 3, 4]

Beide Variablen verweisen auf dieselbe Liste.

Das Verständnis von Referenzen und veränderbaren Objekten gehört zu den wichtigsten Grundlagen der Sprache.

Interaktive Entwicklung

Python eignet sich hervorragend für exploratives Arbeiten.

Bereits die eingebaute REPL erlaubt das direkte Ausführen einzelner Befehle:

python

Darüber hinaus haben sich Werkzeuge wie IPython und Jupyter Notebooks etabliert. Sie ermöglichen ein schnelles Experimentieren mit Code und werden insbesondere in der Datenanalyse intensiv genutzt.

Typische Denkfehler von Sprachumsteigern

Viele Entwickler versuchen zunächst, bekannte Muster aus Java oder C# direkt auf Python zu übertragen.

Häufige Beispiele sind:

  • Zu viele Klassen
  • Getter- und Setter-Methoden für jedes Attribut
  • Übermäßige Vererbung
  • Zu komplexe Projektstrukturen

Python bevorzugt häufig einfachere und direktere Lösungen.

PEP 8 und Code-Stil

PEP 8 definiert den offiziellen Stilguide der Python-Community.

Dazu gehören unter anderem:

  • Vier Leerzeichen pro Einrückungsebene
  • Snake Case für Funktionen und Variablen
  • Pascal Case für Klassen
  • Lesbare Zeilenlängen
  • Konsistente Formatierung

In modernen Projekten werden diese Regeln meist automatisch durch Werkzeuge wie Ruff überprüft und teilweise automatisch korrigiert.

Zusammenfassung

Python verfolgt einen pragmatischen Ansatz und stellt Lesbarkeit sowie Produktivität in den Mittelpunkt. Obwohl viele Konzepte aus Java, C# oder C++ bekannt erscheinen, unterscheiden sich zahlreiche Details der Sprache deutlich. Wer die Python-Philosophie versteht und sich auf die idiomatischen Lösungswege einlässt, kann mit vergleichsweise wenig Code leistungsfähige Anwendungen entwickeln.

In den folgenden Kapiteln lernen Sie die wichtigsten Sprachkonzepte Schritt für Schritt kennen und wenden diese direkt in praktischen Beispielen an.