Introduction à Python

publicité
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
Téléchargement