0 Année 14-15• Séquence 3• Introduction à Python Introduction à Python • TP 1 : Creation variable - lecture - écriture -If - For - While • TP 2 : gestion de liste • TP 3 : création et utilisation de fonction source : http://www.scribd.com/doc/59231293/poly-TD Année Séquence Durée 14-15 3 2h00 Introduction à Python Année Séquence Document 14-15 3 TP 1 À la fin de ce TP, vous devez être capable : • de saisir ou d’afficher une donnée ; • de créer et modifier une variable ; • de mettre en place une structure alternative if ; • de mettre en place une structure répétitive for ; • de mettre en place une structure réprétitive while ; 1 Notions de variables et de type. Dans une console Idle : 1. Définir une variable a initialisée à la valeur 10. 2. En utilisant les fonctions type() et id(), donner le type de la variable a et son emplacement mémoire. 3. Ré-affecter la valeur 1.5 × a à la variable a. Quel est son type et son emplacement mémoire ? 4. Ré-affecter la valeur 10 à la variable a. Quel est son type et son emplacement mémoire ? Comparer avec la réponse à la question 2. 5. Ré-affecter la valeur a 2 à la variable a. Quel est son type et son emplacement mémoire ? 6. Définir la variable b = “manger′′ . Quel est le type et l’emplacement mémoire de b ? 7. Que vaut 2 × b ? 8. Que vaut a + b ? pourquoi ? 2 Lecture et écriture de données. 1. Écrire un programme (dans un fichier) qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carré de ce nombre. Exemple : Valeur saisie : 5 Affichage : 25 2. Écrire un programme qui demande une vitesse en km/h puis qui l’affiche en m/s. 3 Structure alternative. 1. Écrire un programme qui demande un nimbre à l’utilisateur puis affiche à l’écran la valeur absolue de ce nombre. 2. Écrire un programme qui demande deux nombres à l’utilisateur et l’informe ensuite si le produit est négatif, positif ou nul. Attention toutefois, on ne doit pas calculer le produit ! 4 Structures répétitives. 1. (a) Écrire un programme permettant de saisir puis d’afficher une valeur comprise entre 1 et 31. On recommencera la saisie jusqu’à ce que la valeur soit bien dans les bornes imposées. Exemple : Valeur saisie : 43 affichage : valeur non comprise entre 1 et 31 recommencez . . . Valeur saisie : 15 , affichage : 15 (b) Est-il possible d’écrire ce programme avec une boucle for ? Si oui, faite le sinon expliquez votre réponse. 2. Écrire un programme pour afficher tous les nombres pairs compris entre 0 et 20 inclus : (a) en utilisant une boucle pour (b) en utilisant une boucle tant que 5 Suite de Syracuse. La « Suite de Syracuse » est une suite classique en mathématique. On part d’un nombre entier plus grand que zéro ; s’il est pair, on le divise par 2 ; s’il est impair, on le multiplie par 3 et on ajoute 1. En répétant l’opération, on obtient une suite d’entiers positifs dont chacun Année 14-15• Séquence 3• Introduction à Python 2 ne dépend que de son prédécesseur. Par exemple, à partir de 14, on construit la suite des nombres : 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2 . . . C’est ce qu’on appelle la suite de Syracuse du nombre 14. La conjecture de Syracuse, encore appelée conjecture de Collatz, conjecture d’Ulam, conjecture tchèque ou problème 3x+1 est l’hypothèse mathématique selon laquelle la suite de Syracuse de n’importe quel entier strictement positif atteint 1 (et donc repète le cycle 1, 4, 2, 1 . . .). 1. Écrire un programme affichant la suite de Syracuse pour un entier n saisi par l’utilisateur. On affichera tous les termes jusqu’à obtention du premier chiffre 1. 2. Est-il possible d’écrire le programme avec une boucle for ? Expliquez pourquoi. Pour ceux qui sont en avance : 6 Conversion de temps. Écrire un programme qui demande un temps en seconde à l’utilisateur puis qui affiche ce temps en jours, heures, minutes, et secondes. 7 Suite de Fibonacci. La « Suite de Fibonacci » est une suite classique en mathématique définie de la manière suivante : • Les deux premiers termes sont 1 et 1 • chaque terme suivant est égal à la somme des deux termes qui le précèdent. Les premiers termes sont donc 1 − 1 − 2 − 3 − 5 − 8 − 13 − 21 − 34 . . . 1. Écrire un programme utilisant une boucle for qui donne les n premiers termes de la suite de Fibonacci, le nombre n étant saisi par l’utilisateur. 2. Ré-écrire le programme en utilisant une boucle while. 8 Indice de masse corporelle. masse où la masse est en kilogrammes et taille2 la taille en mètres. Un IMC est considéré comme normal s’il est compris entre 18,5 et 25. En dessous de 18, la personne est en sous-poids et au-dessus de 25, elle est en surpoids. L’Indice de Masse Corporelle se calcule par la formule IM C = 1. Écrire un programme qui demande la taille et le poids d’un individu et retourne l’IMC et la catégorie correspondante. 2. Ecrire un programme qui demande la taille et retourne l’intervalle de masse correspondant à un IMC normal. 3. Ecrire un programme qui demande la masse et retourne l’intervalle de taille correspondant à un IMC normal. 9 Années bisextiles. Les années bissextiles sont les années non séculaires divisibles par 4 ou les années séculaires divisibles par 400. Ecrire un programme qui prend en entrée une année n et qui affiche en sortie si elle est bissextile. 10 Écrire un programme permettant de simuler le fonctionnement d’une calculatrice simple (+, -, *, /). Dans cet exercice, l’utilisateur saisira les deux opérandes, l’opérateur et le programme lui affichera le résultat correspondant. Dans le cas d’une division, on vérifiera bien que le dénominateur est non nul ! 11 Ecrire un programme qui vous demande les coordonnées de 2 points A et B, puis qui vous dit si la droite (AB) coupe l’axe des abscisses et qui donne alors les coordonnées du point d’intersection. 12 Écrire un programme où l’ordinateur choisit un mot de passe puis demande à l’utilisateur de saisir le mot de passe tant que celui-ci n’est pas correct. 13 3 Année 14-15• Séquence 3• Introduction à Python 1. Écrire un programme permettant de calculer la somme des n premières puissances de 2. Exemple : valeur saisie 6 résultat 63(= 1 + 2 + 4 + 8 + 16 + 32). 2. Modifier le programme pour qu’il calcule la somme des n premiers nombres impairs. Quel lien pouvez-vous établir entre la valeur obtenue et n ? 3. Modifier le programme pour qu’il calcule la somme des n permiers cubes. 4. Modifier le programme pour qu’il affiche en sortie le plus petit entier n tel que est un nombre entré par l’utilisateur). Pk=n k=1 k 3 > M . (M Introduction à Python Année Séquence Document 14-15 3 TP 2 À la fin de ce TP, vous devez être capable : • de savoir manipuler une liste (ajout/suppression/affichage d’éléments) • de créer une liste ; • de parcourir une liste ou accéder à un élément particulier ; 1 Manipulation de listes. On considère la liste de nombres 1, 3, 5, 7, 9 Dans une console Idle : 1. Définir une variable L contenant la liste indiquée dans l’énoncé. 2. Faire afficher le 3ième élément de la liste. 3. Ajouter le nombre 2 entre les éléments 1 et 3. 4. Ajouter 11, 13, 15 en fin de liste. 5. Créer une liste M qui contient les carrés des valeurs de la liste L. 6. Déterminer si le nombre 16 est un nombre de la liste M . 7. Supprimer la valeur 2. 8. Supprimer la 4ieme valeur. 9. Faire afficher les 6 dernières valeurs de la liste. 10. Faire afficher les 3 premières valeurs de la liste. 11. Faire afficher de la quatrième à la sixième valeur de la liste. 2 Création et remplissage d’une liste. Créer un programme (dans un fichier) qui demande et enregistre les 9 notes d’un élève dans une liste. 3 Utilisation de listes. Lors de sa scolarité un étudiant obtient, pour chacune des 9 matières qu’il a suivie, une note de contrôle continu et une note d’examen final. La moyenne finale, pour chaque matière, est calculée suivant la pondération. • Contrôle continu : coefficient 1 • Examen terminal : coefficient 2 1. Modifier le programme de l’exercice précédent pour qu’il permette la saisie des notes du controle continu dans une liste N1 et des notes de l’examen final dans une liste N2. 2. Compléter le programme pour qu’il crée un troisième liste, notée Moy, contenant pondérées en utilisant les coefficients donnés. Controle continu N1 12 8 5,5 14 13 10,5 7 N2 15 3 12 17 8 10 8 Exemple : Examen Moyenne Moy 14 4,66 9,83 16 9,66 10,16 7,66 les moyennes 16 19 18 9 3 5 12 × 1 + 15 × 2 2 3. Compléter le programme pour qu’il affiche la moyenne du tableau Moy. La note 14 a été obtenue par le calcul 4. Compléter le programme pour qu’il affiche “Reçu” ou “Recalé” suivant que le candidat a obtenu une moyenne supérieure à 10 ou non. Introduction à Python Année Séquence Document 14-15 3 TP 3 À la fin de ce TP, vous devez être capable : • d’utiliser des fonctions pour récupérer des valeurs ; • de définir une fonction et d’écrire proprement un programme contenant des fonctions ; • de savoir passer des paramètres (éventuellement par défault) à une fonction ; 1 Écrire une fonction. 1. Écrire une fonction qui, pour un entier n passé en paramètre, retourne la somme des n premiers entiers. n(n + 1) Rappel : 1 + 2 + 3 + ... + n = . 2 2. Écrire une fonction qui renvoie le volume d’une boîte parallélépipédique dont on fournit les trois dimensions longueur, largeur et hauteur en arguments. Si la hauteur n’est pas spécifiée, elle est considérée par défault égale à 1 unité. 3. Écrire un programme qui calcule les racines réelles (si elles existent) d’un polynôme du second degré décrit par 3 coefficients réels a, b et c. Les solutions seront affichées à l’écran. 4. Écrire une fonction qui affiche les dix nombres suivants la valeur n donnée en paramètre. Par exemple, si l’utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27. 2 Gestion de fonctions. Lors du TP2, vous avez écrit un programme permettant, suite à la saisie des notes d’un étudiant, d’afficher la moyenne par matière, puis la moyenne générale, et enfin si l’étudiant était admis ou non. Réécrire proprement ce programme en utilisant quatre fonctions : 1. une fonction SaisirNote() ; 2. une fonction CalculerMoyenneMatiere() ; 3. une fonction CalculerMoyenneGenerale() ; 4. une fonction Decision() ; Pour ceux qui sont en avance : 3 Écrire en un minimum de lignes un programme permettant de dessiner le motif ci-dessous. Le caractère, le nombre de répétition du triangle et la base du triangle seront passés en paramètres du programme. Dans l’exemple, le caractère est l’étoile, le triangle est répété 3 fois et sa base est de longueur 4. * ** *** **** * ** *** **** * ** *** **** Introduction à Python Année Séquence Document 4 Écrire une fonction qui remplace la valeur absolue d’un nombre passsé en argument. 14-15 3 Test Introduction à Python Année Séquence Document 14-15 3 Solution 1. Nombre au carré a = int ( input ( " Quel nombre souhaitez - vous élever au carré ? " ) ) print ( " Le carré de " , a , " est " , a * a ) # on peut aussi utiliser : print ( " Le carré de {0} est {1} " . format (a , a **2) ) 2. Conversion temps temps = int ( input ( " Entrez le temps a convertir en seconde : " ) ) # calcul du nombre de jours et reste à convertir jour = temps //(3600*24) reste = temps %(3600*24) # calcul du nombre d ’ heure et reste à convertir heure = reste //3600 reste = reste %3600 # calcul nombre minutes et seconde minute = reste //60 reste = reste %60 print ( temps , " secondes corresponden t à : " ) print ( jour , " jour ( s ) " ) print ( heure , " heure ( s ) " ) print ( minute , " minute ( s ) " ) print ( reste , " seconde ( s ) " ) # Ci - dessous en une ligne : # print ("{0} secondes corresponden t à {1} jour ( s ) , {2} heure ( s ) , {3} minute ( s ) et {4} seconde ( s ) ". format ( temps , jour , heure , minute , reste )) 3. Conversion vitesse vitesse = int ( input ( " Quelle vitesse souhaitez - vous convertir ? " ) ) print ( vitesse , " km / heure équivaut à " , vitesse *1000/3600 , " m / s " ) 1. Valeur absolue nombre = int ( input ( " Entrer un nombre : " ) ) if nombre <0: nombre = - nombre print ( " La valeur absolue du nombre entré est " , nombre ) 2. Signe du produit a = int ( input ( " Entrer le premier nombre : " ) ) b = int ( input ( " Entrer le deuxième nombre : " ) ) if (a >0 and b >0) or (a <0 and b <0) : print ( " le produit est positif " ) elif a ==0 or b ==0: print ( " le produit est nul " ) else : print ( " le produit est négatif " ) 1. Saisir puis afficher une valeur comprise entre 1 et 31. saisie = int ( input ( " Entrez un nombre entre 1 et 31 : " ) ) while saisie <1 or saisie >31 : print ( " Respecter la consigne !!! " ) saisie = int ( input ( " Entrez un nombre entre 1 et 31 : " ) ) print ( " Parfait ! " ) Année 14-15• Séquence 3• Introduction à Python 2. Nombre de 0 à 20 deux par deux print ( " Première version ’ For ’: " ) for i in range (0 ,11 ,1) : print (2* i ) print ( " Deuxième version ’ For ’ : " ) for i in range (0 ,21 ,2) : print ( i ) print ( " Version ’ While ’: " ) i = 0 while i <=10 : print (2* i ) i +=1 Syracuse a = int ( input ( " entrer la valeur de départ : " ) ) print (a , sep = " ; " , end = " " ) while a !=1: if a %2==0: a = int ( a /2) else : a = 3* a +1 print (a , sep = " ; " , end = " " ) Fibonacci a = int ( input ( " combien de termes voulez - vous ? " ) ) b =1; print ( b ) c =1 print ( c ) for i in range (0 ,a -2) : print ( b + c ) b , c =c , b + c 8