TP3 - Boucle for
¶

A. Ridard

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

In [ ]:
# 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 _

In [ ]:
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

In [ ]:
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$$

In [ ]:
# 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¶

In [ ]:
# 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

In [ ]:
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().

In [ ]:
help(sum)
In [ ]:
# Que calcule la fonction len() ?

help(len)
In [ ]:
# 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.

In [ ]:
# Que réalise la méthode .append() appliquée à un objet de type list ?

help(list.append)
In [ ]:
# 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.

In [ ]:
# Réponse

Exercice 2¶

Ecrire un programme :

  • qui demande à l'utilisateur de saisir un entier n
  • qui affiche le produit des n premiers entiers
In [ ]:
# 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
In [ ]:
# Réponse