TP3 - Boucle for ¶
Répétition d'un bloc d'instructions¶
Une boucle for permet de répéter une suite d'instructions regroupées en un bloc, c'est à dire écrites sur des lignes consécutives avec un même niveau d'indentation.
Le nombre de tours est prédéfini, et chacun des tours est associé à un indice : un nombre entier progressant (par défaut) de 0 (inclus) à une borne spécifiée (exclue).
# la borne spécifiée, à l'aide de range(), est égale à 3 donc l'indice i prendra successivement les valeurs 0, 1 et 2
# le nombre de tours (égal à 3) coincide avec la borne spécifiée
for i in range(3):
print("J'adore l'info !")
Remarque : lorsque l'indice i n'est pas utilisé dans le bloc d'instructions, on peut le remplacer par _
for _ in range(3):
print("J'adore aussi les maths !")
On peut évidemment utiliser, dans le bloc d'instructions, l'indice i qui change de valeur à chaque tour
for i in range(3):
print("Tour n°", i)
print("J'adore l'info ! \n") # le caractère "d'échappement" \n permet de passer à la ligne
On utilise souvent un accumulateur dans le bloc d'instructions, par exemple pour calculer la somme des 100 premiers entiers : $$1 + 2 + 3 + ... + 100$$
# on initialise la somme à 0
somme = 0
# on augmente la somme de i à chaque tour
# attention, l'indice i varie dans cette boucle de 1 à 100
# avec ce choix, l'instruction qui augmente la somme est plus simple à écrire
for i in range(1, 101):
somme = somme + i
print("somme à la fin du tour n°", i, ":", somme)
# on affiche le résultat
print("La somme des 100 premiers entiers vaut :", somme)
Retour sur le calcul de la moyenne pondérée du TP 1¶
# Calculez la moyenne des notes pondérée par les coefficents associés
notes = [5, 4.5, 4.5, 5.5]
coeff = [2, 3, 2, 1]
# Réponse du TP1
moyenne = ( notes[0]*coeff[0] + notes[1]*coeff[1] + notes[2]*coeff[2] + notes[3]*coeff[3] ) / sum(coeff)
print("La moyenne vaut :", moyenne)
# Si vous modifiez les données (notes et/ou coeff), le calcul fournit une nouvelle moyenne, essayez...
Ce code peut être simplifié à l'aide d'une boucle for
notes = [5, 4.5, 4.5, 5.5]
coeff = [2, 3, 2, 1]
somme = 0
for i in range(4):
somme = somme + notes[i]*coeff[i]
moyenne = somme / sum(coeff)
print("La moyenne vaut :", moyenne)
Le langage de programmation Python, comme les autres, contient des fonctions prédéfinies :
- type()
- print()
- input()
- sum()
- ...
Pour accéder à la documentation de ces fonctions, il suffit d'utiliser la fonction help().
help(sum)
# Que calcule la fonction len() ?
help(len)
# La fonction len() appliquée à la liste des notes
notes = [5, 4.5, 4.5, 5.5]
len(notes)
Le langage de programmation Python contient aussi des méthodes qui sont des fonctions appliquées à des objets.
La différence entre fonctions et méthodes est conceptuellement importante, mais pour nous seule la différence de syntaxe va compter.
# Que réalise la méthode .append() appliquée à un objet de type list ?
help(list.append)
# La méthode .append() appliquée à la liste des notes
notes = [5, 4.5, 4.5, 5.5]
notes.append(4)
notes
Exercices¶
Exercice 1¶
Afficher les 10 premiers entiers impairs.
# Réponse
Exercice 2¶
Ecrire un programme :
- qui demande à l'utilisateur de saisir un entier n
- qui affiche le produit des n premiers entiers
# Réponse
Exercice 3¶
Ecrire un programme :
- qui demande à l'utilisateur de saisir un entier n (entre 5 et 10), puis n notes (entre 1 et 6) qui seront ajoutées dans une liste
- qui affiche la moyenne des notes de la liste
# Réponse