Corrigé Cours de Mr JULES v1.3 Python : Instructions composées (I). Page 1 sur
Corrigé Cours de Mr JULES v1.3 Python : Instructions composées (I). Page 1 sur 22 NOM et prénom : …………………………………………… Première spécialité NSI CORRIGE INSTRUCTIONS COMPOSEES EN PYTHON (I) : BOUCLE FOR, TESTS, BOUCLE WHILE. Me signaler toute erreur éventuelle ! I. Répétitions dont le nombre est connu à l’avance. _________________________________________ 2 II. Tests conditionnels et alternatives. _____________________________________________________ 7 III. Répétitions dont le nb n’est pas connu à l’avance. _____________________________________ 14 IV. Compléments sur les boucles For et While. ___________________________________________ 19 Logiciels et sites internet : Editeur et console Python (Thonny, VS Code etc.) ; www.franceioi.org. Pré-requis pour prendre un bon départ : Variables : initialisation, affectation, auto-affectation, incrémentation, etc. Fonctions d’entrée sortie. Expressions booléennes (expressions vraies ou fausses). Schémas ensemblistes. Ce cours Python fonctionne en pédagogie inversée. Ce livret est donc un post-cours complémentaire aux exos de France IOI, et doit être fait juste après les chapitres correspondants sur France IOI : Exercices France IOI Chapitres de ce livret Niveau 1 Chapitres 2-6 Chapitre I : Boucles For. Niveau 1 Chapitres 5-6-7. Chapitre II : Tests conditionnels. Niveau 1 Chapitre 8. Chapitre III : Boucles While. Chapitre IV : Compléments Boucles. Corrigé Cours de Mr JULES v1.3 Python : Instructions composées (I). Page 2 sur 22 I. REPETITIONS DONT LE NOMBRE EST CONNU A L’AVANCE. L’une des raisons d’être de l’Informatique est de faire faire aux machines ce qui est emmerdant pour les humains. En particulier les choses répétitives et ennuyantes. Il existe 2 types de répétitions : les répétitions dont le nombre est connu à l’avance. les répétitions dont le nombre n’est pas connu à l’avance, car dépendantes d’une certaine condition. Le type de répétition le plus simple est celui dont le nombre est connu à l’avance. En Python (mais aussi dans bien d’autres langages : langage C, PHP, Go etc.), l’instruction qui permet d’exécuter en boucle un nombre précis de fois une ou plusieurs actions s’appelle la boucle For. A. Syntaxe de la boucle déterminée For : Modèle Explications for Variable de boucle in Séquence : Suite du programme for Variable de boucle in Séquence : Entête de la boucle constituée des mots réservés for (sans majuscule) et in. Se termine obligatoirement par « : ». Séquence : C’est une suite itérative d’éléments, semblable à une liste. Ex : (0 , 1 , 2) ; [‘MDR’, ‘GG’,’bouh’] ; [ k, ‘same as’, 1 > 0 ] etc. (Nous reviendrons au cours 3 sur ce type Séquence.) Le nb de tours de boucle (nb de répétitions) est donné par le nombre d’éléments dans Séquence. Variable de boucle (parfois appelé indice de boucle) : Nom au choix du programmeur. Ex : loop, k , nb_tours etc. A chaque tour de boucle, Variable de boucle reçoit l’élément de Séquence correspondant au numéro de tour. Corps de la boucle ou Bloc d’instructions : Ce seront la ou les instructions qui seront exécutées et répétées. Ce bloc est obligatoirement indenté à droite. Suite du programme : Après la dernière instruction du dernier tour de boucle, le programme passe à la suite, c-à-d à la première instruction non indentée qui n’est donc plus dans le corps de la boucle. Traduction en Français Pour le nb de fois où Variable est affectée aux éléments de Séquence, exécuter : Corps de la boucle. Suite du programme Exemples d’entêtes de boucle For et du nombre de tours de boucle associé for element in [‘nb’, 3 , k ] : 3 éléments dans [‘nb’, 3 , k ] 3 tours. for lettre in ‘abracadabra’ : 11 lettres dans abracadabra 11 tours for loop in range(5) : 5 tours for nb in range(p) : p tours Corps de la boucle Corrigé Cours de Mr JULES v1.3 Python : Instructions composées (I). Page 3 sur 22 B. Fonction range( ) : On remarque dans les 2 derniers exemples page précédente la présence de la fonction « range( ) ». La fonction range( ) permet de construire des suites (arithmétiques) d’entiers selon les schémas suivants : Syntaxe Entrée(s) Sortie Exemples à vérifier à la console range( f ) f entier positif. similaire à ⟦ 0 ; f ⟦, la liste des entiers de 0 inclus jusqu’à l’entier f exclu. similaire à ⟦ 0 ; f 1 ⟧. range(4) similaire à [ 0 , 1 , 2 , 3 ]. range(3) similaire à [ 0 , 1 , 2 ]. range(k) similaire à [ 0 , 1 , etc. , k 1]. range(1) similaire à [ 0 ]. range(0) similaire à [ ] liste vide. range(d , f) d et f entiers positifs ou négatifs. d f. similaire à ⟦ d ; f ⟦, la liste des entiers de d inclus jusqu’à f exclu. similaire à ⟦ d ; f 1 ⟧. range(2 , 5) similaire à [ 2 , 3 , 4 ]. range(1 , 4) similaire à [ 1 , 2 , 3 ]. range(-1 , 2) similaire à [-1 , 0 , 1 ]. range(-1 , k) similaire à [-1 , etc , k 1 ] range(4 , 1) similaire à [ ] liste vide. range(d , f , p) d , f et p entiers positifs ou négatifs. similaire à la liste de tous les entiers partant de d inclus, itéré (augmenté) à chaque fois du pas p, jusqu’à f exclu. range(2, 9, 3) similaire à [ 2 , 5 , 8 ]. range(2, 8, 3) similaire à [ 2 , 5 ]. range(5, 0, -2) similaire à [ 5 , 3 , 1 ]. range(-1, -3, -1) similaire à [ -1 , -2 ]. range(1, 3, -1) similaire à [ ] liste vide. Remarques sur la fonction range( ) 1. Lorsque les arguments entre parenthèses ne vérifient pas les conditions d’entrée, la fonction « range( ) » renvoie l’équivalent d’une liste vide. 2. range( f ) = range( 0 , f ) = range( 0 , f , 1 ) Exemples d’entêtes de boucle For et nombres de tours associés for k in range(2 , 5) : range(2 , 5) [2 , 3 , 4] donc 3 tours. for j in range(k + 1) : range(k+1) ⟦0 ; k⟧ donc (k + 1) tours. for nbs in range(2 , 10, 3) : range(2, 10, 3) [2 , 5 , 8] donc 3 tours. for p in range(3,-7,-2) : range(3 , -7 , -2) [3, 1, -1 , -3 , -5] donc 5 tours. C. Exercices classiques utilisant la boucle For : Sans utiliser l’ordinateur, quels sont les scripts qui affichent 2 , 4 , 6 en colonne ? Vérifier à l’ordinateur. for k in range(3) : k = k + 2 print (k) range(3) [0 , 1 , 2] k = k + 2 donnera successivement 2 , 3 , 4. for k in range(1 , 3) : k = k * 2 print (k) range(1 , 3) [ 1 , 2 ] k = k * 2 donnera successivement 2 , 4. for k in range(6) : if k % 2 == 1 : print (k + 1) range(6) [0,1,2,3,4,5] if k%2 == 1 impairs. Puis avec le k + 1… for k in range(6) : if k % 2 == 0 : print (k) range(6) [0,1,2,3,4,5] if k%2 == 0 sélectionne les pairs. 2 3 4 2 4 2 4 6 0 2 4 Corrigé Cours de Mr JULES v1.3 Python : Instructions composées (I). Page 4 sur 22 for k in range(3) : k = k * 2 print (k + 2) range(3) [0 , 1 , 2] k = k * 2 donne 0 , 2 , 4. Puis avec le k + 2… for k in range(2 , 6 , 2) : print (k) range(2, 6, 2) [ 2 , 4 ] for k in range(2 , 7 , 2) : print (k) range(2,7,2) [2 , 4, 6] for k in range(2 , 8 , 2) : print (k) range(2,8,2) [2 , 4, 6] En utilisant la variable de boucle et la fonction range( ), écrire un script permettant d’afficher la ou les : Table de multiplication de 3. (boucle simple) for nombre in range(1 , 11) : print (nombre * 3) Tables de multiplication de 1 à 10. (2 boucles imbriquées) for tablede in range(1 , 11) : print(f"Voici la table de {tablede} : ") for nombre in range(1 , 11) : print(nombre * tablede) print( ) Ecrire un programme qui affiche : La moyenne de plusieurs notes rentrées par un utilisateur. (boucle simple) nb_notes = int(input(‘Combien de notes ?’) uploads/Finance/ 1erensi-python-cours-niv2-corrige.pdf
Documents similaires







-
28
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 01, 2022
- Catégorie Business / Finance
- Langue French
- Taille du fichier 1.4714MB