Bac NSI study materials
Bac NSI study resources

Bac NSI: Langages et programmation

Bac NSI · Work through your exam, one topic at a time.

All guide sections

Langages et programmation

Ce domaine évalue la maîtrise d'un langage de programmation, ici Python, pour écrire des fonctions correctes, lisibles et testées. L'examen porte sur la syntaxe, les variables, les structures de contrôle, les fonctions, la portée des noms, les exceptions et la démarche de test.

Règles et concepts

  • L'indentation délimite les blocs en Python ; une indentation incohérente provoque une erreur de syntaxe ou change le sens du programme.
  • Une fonction reçoit des paramètres et renvoie une valeur avec return. print affiche, mais ne renvoie pas : une fonction sans return renvoie None.
  • Une variable locale existe dans la fonction ; une variable globale est définie hors de la fonction. Modifier une globale sans précaution dans une fonction demande l'instruction global, souvent à éviter.
  • Les structures if, elif, else, for et while contrôlent l'exécution. range(n) parcourt de 0 à n-1.
  • Un test vérifie un comportement attendu. assert moyenne([10, 20]) == 15.0 est un test simple ; il faut aussi tester les cas limites.
  • Une exception peut être levée avec raise et traitée avec try et except.

Exemple travaillé

On écrit def moyenne(notes): if len(notes) == 0: return None; return sum(notes) / len(notes). L'instruction sum(notes) additionne les éléments, len(notes) compte les notes et la division produit un float. Le test assert moyenne([10, 20]) == 15.0 vérifie le cas nominal. Le test assert moyenne([]) is None vérifie le cas limite. Si l'on avait utilisé print au lieu de return, la fonction afficherait le résultat mais ne le renverrait pas : le test échouerait, car la valeur renvoyée serait None.

Pièges fréquents

Confondre print et return ; oublier les deux-points après if ou for ; mal indenter ; utiliser une variable locale hors de sa portée ; modifier une liste pendant un parcours ; écrire une condition avec = au lieu de == ; oublier le cas vide ou le cas d'une division par zéro ; croire qu'un test prouve l'absence totale de bug.

À retenir

  • L'indentation structure le code Python.
  • return renvoie une valeur, print affiche seulement.
  • Les variables locales et globales ont des portées différentes.
  • Les tests couvrent cas nominaux et cas limites.
  • try et except traitent les exceptions.