Je te propose une solution plus courte yann0 (pour que tu montes en compétences) :
print(list(n*3-1 for n in range(0,6)))
C’est ce que l’on appelle un sucre syntaxique, une version plus compacte d’un morceau de code. La déclaration est légèrement différente.
Dans celui-ci, nous avons une boucle for n in range(0,6) qui remplace respectivement tes lignes 1, 3 et 11 avec lesquels tu souhaites finalement obtenir une variable n comprise entre 0 et 6 (ce que l’on appelle typiquement une variable itérative). On pourrait le traduire par : "pour n dans l’intervalle [0; 6]".
En écrivant n*3–1 for n in range(0,6) on indique au programme que l’on va utiliser la variable itérative n dans le calcul se trouvant à gauche n*3–1. Ce qui va donner : 0*3-1
puis 1*3-1
puis 2*3-1
et ainsi de suite. Jusqu’à ce que nous ayons nos 6 valeurs.
Pour obtenir les résultats, il va falloir englober cette boucle de la fonction list()
. Nous pouvons ensuite les afficher avec print()
.
(A savoir) Python va lire le code ainsi : une boucle sur n entre 0 et 6 permettant de calculer n*3–1 avec n*3-1 for n in range(0,6)
, une transformation en liste avec list()
et un affichage des résultats avec print()
.
Je te propose un autre exercice :
1) Calculer le 3ème, 4ème et 5ème termes de la suite Un = n²+3. Juste en modifiant le premier code que tu as posté.
2) Réaliser la somme du résultat précédent. Y’a une fonction toute prête pour ça !
3) Transformer l’algorithme trouvé en utilisant les sucres syntaxiques (comme pour celui-ci, ça prend une seule ligne).
Surtout prends ton temps pour assimiler. Ce n’est pas insurmontable et je suis certain que tu recevras une certaine fierté !