Examen du niveau 2 — durci

Examen — questions inédites

2.1 · Rappel

1. Quelle structure choisir pour associer un code client à ses infos ?

Le dict est l'annuaire : accès par clé, .get() sans KeyError, parcours en .items().
2.1 · Application

2. Nabil écrit « copie = ventes » puis modifie « copie ». Que se passe-t-il ?

= partage, il ne copie pas : .copy() à plat, deepcopy() pour l'imbriqué.
2.1 · Arbitrage

3. Un collègue cherche chaque client en parcourant une liste de 50 000 lignes à chaque fois. Verdict de Nabil ?

Chercher par identifiant = dict indexé ; la liste reste pour l'ordre et le parcours.
2.2 · Rappel

4. Pourquoi préférer les f-strings à la concaténation avec + ?

f"Total : {total:.2f} €" : variable, calcul et format en une ligne lisible.
2.2 · Application

5. Nabil lit un export avec des accents cassés et un fichier parfois verrouillé. Que corrige-t-il ?

with ferme tout seul même en erreur ; encoding utf-8 garde les accents ; « w » écrase, il ne lit pas.
2.2 · Application

6. Le récap de Nabil doit survivre au redémarrage et rester échangeable. Quel format ?

JSON = listes et dicts persistants, lisibles par d'autres outils ; module csv pour les tableurs.
2.3 · Rappel

7. Que désigne « self » dans une méthode ?

self s'écrit dans la définition, jamais à l'appel : chaque objet garde son propre état.
2.3 · Application

8. Nabil crée VenteRemise(Vente) avec un taux et super().__init__(). Qu'a-t-il fait ?

Héritage pour est-un, peu profond ; composition (a-des) sinon.
2.3 · Arbitrage

9. Un collègue propose 6 niveaux d'héritage et des dicts + fonctions globales « pour aller vite ». Verdict ?

Données + comportements en classe, héritage mesuré, __str__/__eq__ et @dataclass si adapté.
2.4 · Application

10. Nabil convertit une saisie avec float(). Comment la fiabiliser ?

Risqué précis encadré, type ciblé, traitement réel — jamais de except nu.
2.4 · Application

11. Un montant négatif arrive dans Vente(...). Où le refuser ?

raise signale l'invariant violé à la source ; finally nettoie, else continue si OK.
2.4 · Arbitrage

12. Un collègue veut un « except: pass » général pour « ne plus voir d'erreurs ». Verdict de Nabil ?

Silencer enterre les bugs vivants : on n'attrape que ce qu'on sait traiter.
Et après ?
Retour au guideSommaire du guide