Simulation Python mode texte : Boucles
Instruction "for" dont voici la syntaxe :
- for i in liste_valeurs :
# instructions précédées (indentées) de 4 espaces
# i prend successivements chaque valeur de liste_valeurs
# "print(i)" est exécutée pour chaque valeur de i
print(i)
- Il faut aussi remplir la variable "liste_valeurs" :
Cette variable est une liste Python (ou tableau 1D)
On peut la remplir de la manière suivante : liste_valeurs = [ 2010, 2011, 2012, ..., 2021 ]
- Mais ce n'est pas pratique pour des grandes dimensions.
- il existe une intruction "range" (intervalle) qui génère automatiquement un tableau (d'une suite arithmétique)
range(n) retourne le tableau : [ 0, 1, 2, ..., n−2, n−1 ]
qui contient n termes de 0 à n−1
- "range" a une seconde syntaxe : range(n, m) qui retourne [ n, n+1, ... , m−2, m−1 ]
si l'on veut les termes de 1 à n, il faut utiliser : range(1, n+1)
- "range" a une troisième syntaxe : range(n0, nmax, r)
qui retourne [ n0, n0+r, n0+2r, ... , n0+n*r ] sans atteindre ou dépasser nmax : n0+n*r < nmax
expérimentation : copier le programme suivant dans https://py3.codeskulptor.org et lancer "Run"
puis changer les valeurs, tester les nombres négatifs et les nombres réels pour voir
# intervalle [ 0 ; 9 ] :
liste1 = range(10)
# print() sait même écrire un tableau(liste) :
print(liste1,"=", list(liste1))
# intervalle [ 5 ; 15 ] :
liste2 = range(5, 16)
print(liste2,"=", list(liste2))
# nombres pairs de 10 à 20 :
liste3 = range(10, 21, 2)
print(liste3,"=", list(liste3))
Boucle for pour faire des cumuls :
Après la déclaration "for", il faut indenter les instructions à répéter de 4 espaces.
La fin du "for" est reconnue quand l'indentation s'arrête.
exemple :
# calcul de factorielle n : n! = 1*2*3* . . . *(n-1)*n
# initialisation des cumuls :
n = 11
fact = 1
liste_valeurs = range(n) # liste de 0 à n-1
for i in liste_valeurs :
# instruction : indentée de 4 espaces
fact = fact * (1+i)
# instruction hors de la boucle for : arrêt de l'indentation
print(n, "! =", fact)
exercice : "suite géométrique"
- Dans une ville il y avait u0 = 12 345 habitants en 2010, chaque année, la population diminue de 7%.
- Afficher la population de la ville pour les années 2010 à 2020.
- Le programme va "itérer" de 2011 à 2020 pour effectuer le même calcul : u = u * (1 − 0.07)
ou : u = 0.93 * u
arrondir les résultats à l'entier le plus proche avec round()
- Vous devez obtenir :
En 2020, n = 5975 habitants (c'est-à-dire : u0 × 0,9310)
- solution de l'exercice
Aller aux menus :
5 opérations
fonctions
cours simulation