Leitfaden für Java-Entwickler
Python für Java-Entwickler: Lerne Python mit dem, was du schon weißt
Du kennst schon Java? Entdecke, wie sich vertraute Programmierkonzepte in Python übersetzen, was anders funktioniert und wie du am schnellsten produktiv wirst.
Java und Python im direkten Vergleich
Jedes Paar unten erledigt dieselbe Aufgabe. Lies das Java, das du kennst, und sieh dann, wie Python es ausdrückt.
Variablen, Typen und Funktionen
int total = 0;
String name = "Ada";
static int add(int a, int b) {
return a + b;
}total = 0
name = "Ada"
def add(a: int, b: int) -> int:
return a + bPython kennt keine Typdeklarationen: Ein Name verweist einfach auf einen Wert. Typannotationen dokumentieren die Absicht und helfen Editoren und Tools, aber Python erzwingt sie während der Programmausführung nicht.
Listen, Maps und Dictionaries
List<String> langs = new ArrayList<>(List.of("Java", "Python"));
langs.add("SQL");
Map<String, Integer> ages = new HashMap<>();
ages.put("Ada", 36);
int age = ages.get("Ada");langs = ["Java", "Python"]
langs.append("SQL")
ages = {"Ada": 36}
age = ages["Ada"]Listen und Dictionaries sind fest in die Sprache eingebaut – mit Literal-Syntax, ohne Importe und ohne Generics. Der Zugriff auf einen fehlenden Schlüssel mit [] löst KeyError aus; mit ages.get(name) erhältst du stattdessen None, ähnlich wie bei Map.get in Java.
Schleifen und Iteration
for (int i = 0; i < names.size(); i++) {
System.out.println(i + ": " + names.get(i));
}for i, name in enumerate(names):
print(f"{i}: {name}")Python läuft direkt über die Elemente. Brauchst du zusätzlich die Position, liefert enumerate Index und Wert zusammen – einen Zähler musst du nicht verwalten.
Klassen und Objekte
public class Point {
private final int x;
private final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public double distanceToOrigin() {
return Math.sqrt(x * x + y * y);
}
}import math
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def distance_to_origin(self):
return math.hypot(self.x, self.y)self ist ein expliziter erster Parameter statt eines impliziten this, und Objekte erzeugst du ohne new. Python hat keine Zugriffsmodifizierer; ein führender Unterstrich wie in _x kennzeichnet per Konvention etwas Internes.
Was Java-Entwickler umlernen müssen
Einige Gewohnheiten lassen sich schlecht übertragen. Diese Umstellungen zählen am meisten.
Einrückung ist die Syntax
Blöcke beginnen mit einem Doppelpunkt und werden durch Einrückung statt durch geschweifte Klammern festgelegt. Nutze vier Leerzeichen und bleibe konsequent.
Typen werden zur Laufzeit geprüft
Dynamische Typisierung bedeutet: Ein Name kann auf jeden Wert verweisen, und Typfehler zeigen sich erst, wenn die Zeile ausgeführt wird. Optionale Typannotationen und ein Prüfer wie
mypybringen einen Teil der Java-Sicherheit zurück.Iteriere über Elemente, nicht über Indizes
Laufe direkt über die Sammlung. Greife zu
enumerateoderzip, bevor durange(len(items))schreibst.Setze auf eingebaute Sammlungen
Listen, Dictionaries, Sets und Tupel decken das meiste ab, was du aus
java.utilimportierst. Eine Comprehension wie[len(w) for w in words]ersetzt eine einfache Schleife, die eine Liste aufbaut; mit einemifam Ende filterst du.Schreibe Python, nicht Java in Python
Verzichte auf Getter, Setter und Klassen mit nur einer Methode. Einfache Funktionen und Module sind völlig normal, und Namen schreibt man in
snake_case.
Dein Fahrplan von Java zu Python
Vertraute Konzepte übersetzen
Ordne Java-Konzepte Python zu.
Die Besonderheiten von Python lernen
Sammlungen, Funktionen, idiomatischer Stil.
Mit echtem Code üben
Löse kleine Aufgaben, statt nur zu lesen.
Sicherheit aufbauen
Schwierigere, realistischere Aufgaben.
Der Lernpfad „Python für Entwickler“ von Hintor richtet sich an Entwickler, die die Sprache wechseln, und enthält praktische Übungen direkt in den Lektionen. Lernpfad „Python für Entwickler“ ansehen
Mini-Aufgabe
Schreibe Python-Code, der aus einer Liste von Ganzzahlen eine neue Liste erzeugt, die nur die Quadrate der geraden Zahlen enthält.
- Eingabe
- [1, 2, 3, 4, 5, 6]
- Erwartete Ausgabe
- [4, 16, 36]
Tipp: Eine List Comprehension kann einen if-Filter enthalten, und n % 2 == 0 prüft, ob n gerade ist.
numbers = [1, 2, 3, 4, 5, 6]
even_squares = [n * n for n in numbers if n % 2 == 0]
print(even_squares) # [4, 16, 36]Die Comprehension liest sich von links nach rechts: n * n für jedes n in numbers berechnen und nur die geraden behalten. Eine normale for-Schleife mit append funktioniert ebenfalls; die Comprehension ist die idiomatische Kurzform.
Bereit, dein Java-Wissen in Python-Können zu verwandeln?
Du weißt bereits, wie man programmiert. Jetzt lernst du mit geführten Lektionen und praktischen Übungen, in Python zu denken.
Jetzt Python bei Hintor lernen