Variables, fonctions, boucles et listes en Python, simulation et traitement de données en Première STMG.
Mis à jour le
En Première STMG, l'algorithmique sert à automatiser les calculs de gestion : appliquer une remise, suivre un capital placé année après année, trouver le mois où un stock passe sous un seuil, ou dépouiller un fichier de ventes. Le langage utilisé est Python, comme en seconde.
Au programme : consolider les variables, les instructions conditionnelles, les boucles bornées (for) et non bornées (while), et les fonctions, dont on identifie les entrées et la sortie ; utiliser un compteur et un accumulateur pour une somme ou un produit ; découvrir les listes, seule notion nouvelle de l'année (création en extension, par ajouts successifs avec append, en compréhension, indices, parcours) ; traiter des données réelles et construire un tableau croisé ; simuler une épreuve de Bernoulli avec random() < p, des échantillons et leur fluctuation.
Pièges classiques : oublier que le premier indice d'une liste est 0, confondre print et return, écrire une boucle while qui ne s'arrête jamais, ou calculer avec des nombres lus dans un fichier sans les convertir avec float.
Algorithmique et Python en Première STMG : cours complet
En Première STMG, Python sert à automatiser des calculs de gestion et à traiter des données. On consolide les notions de seconde (variables, tests, boucles, fonctions) et on découvre une seule notion nouvelle : les listes.
Variables et affectation
Une variable est un nom associé à une valeur. L'affectationx = x + 1 calcule d'abord le membre de droite avec la valeur actuelle de x, puis range le résultat dans x. En langage naturel, on écrit x←x+1x ← x + 1.
Exemple : avec prix = 80, l'instruction prix = prix * 0.75 donne 80×0,75=6080 × 0,75 = 60 : une remise de 25%25 %.
Les comparaisons s'écrivent ==, !=, <, <=, >, >= ; on combine des conditions avec and (les deux) et or (au moins une). Avec elif, Python teste les conditions dans l'ordre et s'arrête à la première vraie.
Fonctions
Une fonction a des entrées (ses paramètres) et une sortie (la valeur renvoyée par return) :
def ttc(ht, taux):
return ht * (1 + taux / 100)
ttc(250, 20) renvoie 250×1,2=300250 × 1,2 = 300. Une fonction qui renvoie sa valeur peut être réutilisée dans un calcul ; print ne fait qu'afficher. Découper un programme en petites fonctions (programmation modulaire) le rend plus lisible et plus facile à corriger.
Boucles, compteur et accumulateur
Boucle bornée : for k in range(n): répète nn fois (kk va de 00 à n−1n-1).
Boucle non bornée : while condition: répète tant que la condition est vraie ; le corps doit faire évoluer la situation vers l'arrêt.
Compteur : variable initialisée à 00, augmentée de 11 à chaque événement.
Accumulateur : variable initialisée à 00 pour une somme, à 11 pour un produit.
Exemple : un seuil
Un nombre d'abonnés de 12001200 augmente de 8%8 % par mois ; à partir de quand dépasse-t-il 20002000 ?
a = 1200
n = 0
while a <= 2000:
a = a * 1.08
n = n + 1
À la fin, n vaut 77 : 1200×1,087≈2056,591200 × 1,08⁷ ≈ 2056,59.
Les listes
Une liste range plusieurs valeurs dans l'ordre : ventes = [12, 15, 9, 20].
Opération
Instruction
nombre d'éléments
len(ventes)
premier, dernier élément
ventes[0], ventes[-1]
modifier un élément
ventes[1] = 18
ajouter à la fin
ventes.append(25)
supprimer une valeur, un indice
ventes.remove(9), ventes.pop(0)
somme, maximum
sum(ventes), max(ventes)
⚠️ Les indices commencent à 0 : une liste de nn éléments a des indices de 00 à n−1n - 1.
Créer une liste
en extension : L = [1, 3, 5] ;
par ajouts successifs : L = [] puis L.append(v) dans une boucle ;
en compréhension : [500 + 30*n for n in range(6)] donne les six premiers termes de la suite un=500+30nuₙ = 500 + 30n ;
en compréhension avec condition : [x for x in prix if x > 20] garde les prix supérieurs à 2020.
Traiter des données
Des données réelles se rangent dans une liste de listes, une ligne par enregistrement : ["Paris", "web", 120]. On sélectionne avec une condition, on compte avec len, on cumule avec sum, et l'on construit un tableau croisé à deux critères avec deux boucles imbriquées.
Lu dans un fichier, un nombre est un texte : il faut le convertir avec float avant de calculer, sinon "120" + "80" donne "12080".
Simuler le hasard
random() renvoie un nombre au hasard dans [0;1[[0 ; 1[, et la condition random() < p est vraie avec la probabilité pp : elle simule une épreuve de Bernoulli.
def frequence(n, p):
s = 0
for k in range(n):
if random() < p:
s = s + 1
return s / n
En simulant de nombreux échantillons, on observe que la fréquence fluctue autour de pp, que sa dispersion est proportionnelle à n11/√(n), et qu'environ 95%95 % des fréquences sont à moins de deux écarts-types de pp.
Erreurs fréquentes à éviter
Indice hors de la liste : L[len(L)] n'existe pas.
print au lieu de return dans une fonction de calcul.
Boucle infinie : la variable testée par while n'évolue pas vers la sortie.
Oublier float sur une donnée lue dans un fichier.
random() > p au lieu de random() < p pour un succès de probabilité pp.
FAQ — Algorithmique et Python en Première STMG
Quelle est la notion nouvelle en première ?
Les listes : les créer, accéder à leurs éléments par leur indice, les modifier et les parcourir. Elles servent pour les suites, les tableaux de valeurs et les séries statistiques.
Quand utiliser for plutôt que while ?
for quand on connaît le nombre de répétitions (douze mois, dix ans) ; while quand on répète jusqu'à ce qu'une condition change (un seuil à atteindre).
Pourquoi écrire des fonctions ?
Pour réutiliser un calcul avec d'autres valeurs, et pour découper un problème en étapes simples que l'on vérifie séparément.
À quoi sert la simulation ?
À observer la fluctuation d'échantillonnage et à estimer une probabilité difficile à calculer, en comparant la fréquence obtenue sur un grand nombre d'essais à la probabilité attendue.
Tous les chapitres de Première STMG
Poursuis ta révision avec les autres chapitres du programme de Première STMG.