Guide pour les développeurs C++

Python pour les développeurs C++ : apprends Python à partir de ce que tu sais déjà

Tu connais déjà C++ ? 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.

C++ et Python, côte à côte

Chaque paire ci-dessous fait le même travail. Pars du code que tu connais, puis vois comment Python l'exprime.

Typage statique et typage dynamique

C++
int count = 3;
count = "three";   // compile error

std::string name = "Ada";
Python
count = 3
count = "three"    # allowed

name: str = "Ada"

C++ fixe le type de chaque variable à la compilation. En Python, un nom peut être relié à une valeur de n'importe quel type, et les types ne sont vérifiés qu'à l'exécution de la ligne. Les annotations comme name: str sont lues par des outils tels que mypy, pas imposées à l'exécution, et les entiers ne débordent jamais.

Mémoire, pointeurs et références

C++
int value = 10;
int* ptr = &value;
*ptr = 20;

void bump(int& n) { n += 1; }
Python
a = [1, 2]
b = a
b.append(3)
print(a)  # [1, 2, 3]

Python n'a ni pointeurs ni gestion manuelle de la mémoire : chaque nom est une référence vers un objet, et les objets sont libérés quand plus rien n'y fait référence. b = a copie la référence, pas la liste. Les entiers et les chaînes sont immuables : n += 1 dans une fonction relie un nom local au lieu de modifier la valeur de l'appelant.

std::vector et listes

C++
std::vector<int> nums = {1, 2, 3};
nums.push_back(4);
// holds only ints, stored side by side
Python
nums = [1, 2, 3]
nums.append(4)
mixed = [1, "two", 3.0]

std::vector stocke des valeurs d'un seul type côte à côte en mémoire. Une liste Python stocke des références vers des objets : elle peut donc mélanger les types, ce qui est souple mais plus lourd et plus lent pour de grandes quantités de données numériques. Utilise le module array ou NumPy pour un stockage numérique compact.

Boucles et algorithmes STL

C++
std::vector<int> evens;
for (int n : nums) {
    if (n % 2 == 0) evens.push_back(n);
}
int total = std::accumulate(nums.begin(), nums.end(), 0);
std::sort(nums.begin(), nums.end());
Python
evens = [n for n in nums if n % 2 == 0]
total = sum(nums)
nums.sort()

La plupart des algorithmes STL deviennent des compréhensions ou des fonctions intégrées comme sum, min, max, any et all, et tu passes la collection elle-même plutôt qu'une paire d'itérateurs. nums.sort() trie sur place, tandis que sorted(nums) renvoie une nouvelle liste.

Ce que les développeurs C++ 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 mypy te rendent une partie de la sécurité de C++.

  • Itère sur les éléments, pas sur les indices

    Parcours directement la collection. Pense à enumerate ou zip avant d'écrire range(len(items)).

  • Appuie-toi sur les collections intégrées

    Listes, dictionnaires, ensembles et tuples couvrent l'essentiel de ce que tu importes depuis la STL. Une compréhension comme [len(w) for w in words] remplace une boucle simple qui construit une liste ; ajoute un if à la fin pour filtrer.

  • Pas de gestion manuelle de la mémoire

    Il n'y a ni pointeur à gérer ou libérer, ni séparation entre en-tête et implémentation, ni section private: : Python nettoie les objets pour toi. Utilise with là où tu t'appuierais sur RAII, et écris les noms en snake_case.

Ta feuille de route de C++ vers Python

  1. Traduire les concepts familiers

    Associe la syntaxe et les concepts familiers à Python.

  2. Apprendre les différences de Python

    Collections, fonctions, style idiomatique.

  3. S'entraîner sur du vrai code

    Résous de petits problèmes, ne fais pas que lire.

  4. 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.

Prêt à transformer tes connaissances C++ 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
Python pour les développeurs C++ | Apprends Python plus vite – Hintor