Guide pour les développeurs Java
Python pour les développeurs Java : apprends Python à partir de ce que tu sais déjà
Tu connais déjà Java ? Découvre comment les concepts de programmation que tu maîtrises se traduisent en Python, ce qui fonctionne différemment et le chemin le plus rapide pour devenir productif.
Java et Python, côte à côte
Chaque paire ci-dessous fait le même travail. Lis le Java que tu connais, puis vois comment Python l'exprime.
Variables, types et fonctions
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 n'a pas de déclaration de type : un nom référence simplement une valeur. Les annotations de type documentent l'intention et aident les éditeurs et les outils, mais Python ne les impose pas pendant l'exécution du programme.
Listes, maps et dictionnaires
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"]Les listes et les dictionnaires sont intégrés au langage, avec une syntaxe littérale, sans import ni génériques. Lire une clé absente avec [] lève KeyError ; utilise ages.get(name) pour obtenir None à la place, comme avec Map.get en Java.
Boucles et itération
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 parcourt directement les éléments. Quand tu as aussi besoin de la position, enumerate fournit l'indice et la valeur ensemble, sans compteur à gérer.
Classes et objets
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 est un premier paramètre explicite plutôt qu'un this implicite, et on crée les objets sans new. Python n'a pas de modificateurs d'accès ; un tiret bas initial, comme dans _x, indique par convention qu'un élément est interne.
Ce que les développeurs Java doivent désapprendre
Quelques habitudes se transposent mal. Ces changements comptent le plus.
L'indentation, c'est la syntaxe
Les blocs commencent par deux-points et se définissent par l'indentation, pas par des accolades. Utilise quatre espaces et reste cohérent.
Les types sont vérifiés à l'exécution
Le typage dynamique signifie qu'un nom peut référencer n'importe quelle valeur, et les erreurs de type apparaissent quand la ligne s'exécute. Des annotations de type facultatives et un vérificateur comme
mypyte rendent une partie de la sécurité de Java.Itère sur les éléments, pas sur les indices
Parcours directement la collection. Pense à
enumerateouzipavant d'écrirerange(len(items)).Appuie-toi sur les collections intégrées
Listes, dictionnaires, ensembles et tuples couvrent l'essentiel de ce que tu importes depuis
java.util. Une compréhension comme[len(w) for w in words]remplace une boucle simple qui construit une liste ; ajoute unifà la fin pour filtrer.Écris du Python, pas du Java en Python
Oublie les getters, les setters et les classes à une seule méthode. Les fonctions et les modules simples sont tout à fait normaux, et les noms s'écrivent en
snake_case.
Ta feuille de route de Java vers Python
Traduire les concepts familiers
Associe les concepts Java à Python.
Apprendre les différences de Python
Collections, fonctions, style idiomatique.
S'entraîner sur du vrai code
Résous de petits problèmes, ne fais pas que lire.
Gagner en confiance
Des défis plus réalistes et plus difficiles.
Le parcours Python pour les développeurs de Hintor s'adresse aux développeurs qui changent de langage, avec des exercices pratiques intégrés aux leçons. Découvrir le parcours Python pour les développeurs
Mini-défi
À partir d'une liste d'entiers, écris du code Python qui crée une nouvelle liste contenant uniquement les carrés des nombres pairs.
- Entrée
- [1, 2, 3, 4, 5, 6]
- Sortie attendue
- [4, 16, 36]
Indice : une compréhension de liste peut inclure un filtre if, et n % 2 == 0 teste si n est pair.
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]La compréhension se lit de gauche à droite : calculer n * n pour chaque n de numbers, en ne gardant que les nombres pairs. Une boucle for classique avec append fonctionne aussi ; la compréhension est le raccourci idiomatique.
Prêt à transformer tes connaissances Java en compétences Python ?
Tu sais déjà programmer. Apprends maintenant à penser en Python avec des leçons guidées et de la pratique concrète.
Commencer à apprendre Python sur Hintor