MPSI - Lyc´ee Chrestien de Troyes
TP 2
Prise en main et premi`eres fonctions dans le langage Python
Rappels
Nous avons `a pr´esent construit nos premiers programmes. On continuera `a bien veiller `a
la syntaxe attendue dans le langage Python : l’utilisation des commandes principales, les
indentations...
D’ailleurs, on essaiera si possible d’ˆetre attentif aux messages d’erreurs, qui nous donnent
des renseignements pr´ecieux pour corriger nos scripts Python.
Exercice 2.1 On note fla fonction f:x7→ p|x|d´efinie sur R.
1. Dans le langage Python, d´efinir la fonction fqui `a tout r´eel xrenvoie l’image de xpar f.
2. Construire la fonction representation qui pour tout couple (a, b) donn´e, renvoie la courbe
repr´esentative de fsur [a, b].
3. Modifier votre programme afin que celui-ci prenne pour argument le triplet (λ, a, b), λ∈R,
puis renvoie sur un mˆeme graphique les courbes associ´ees aux fonctions :
•x7→ f(x−λ)
•x7→ f(x) + λ
•x7→ f(λx)
•x7→ λf(x)
4. Tester votre programme avec λ= 2. Que remarquez-vous ?
Exercice 2.2 On consid`ere un polynˆome du second degr´e `a coefficients r´eels d´efini par p(x) =
ax2+bx +c.
1. Pr´eciser l’expression des racines de pen fonction de ∆ le discriminant associ´e. On donnera
les solutions dans R, puis dans C.
2. En utilisant des instructions conditionnelles, construire dans le langage Python, le pro-
gramme solution qui pour tout triplet (a, b, c) donn´e, renvoie les racines r´eelles de p.
3. Modifier alors le programme pr´ec´edent afin que celui-ci renvoie les racines de p,
´eventuellement complexes. On fera attention : dans le langage Python, les nombres com-
plexes s’´ecriront a+b∗j, avec (a, b)∈R2.
4. Construire alors le programme solution2 qui ne prend pas d’argument, mais qui interroge
l’utilisateur pour renseigner les variables a, b, c en d´ebut de programme. On pourra utiliser
l’instruction :
a=float(input(’a? ’))
pour demander la valeur d’une telle variable au cours du programme.
Exercice 2.3 On consid`ere le programme suivant :
def jeu():
x=67
a=0
while a!=x:
a=float(input(’quelle est la valeur myst`ere ?’))
print(’Bravo, il fallait trouver ’,x)
1. D´ecrire le fonctionnement du programme jeu.
2. On souhaite modifier ce programme.
(a) Importer le module random, puis consulter l’aide `a propos de la commande randint.
Modifier alors votre programme pour que celui-ci choisisse un nombre au hasard entre
1 et 100.
(b) Pour finir, ajouter un test conditionnel pour qu’`a chaque ´etape, le programme renvoie
une indication sur la place du nombre myst`ere par rapport au nombre propos´e.
Exercice 2.4 Dans le langage Python, il est tr`es facile d’obtenir le quotient et le reste de la
division euclidienne de deux entiers. Par exemple :
In : 13//5; 13%5
2
3
1. Construire la fonction bool´eenne test qui, pour tout couple d’entiers (a, b) donn´e, renvoie
True si adivise b, et False sinon.
2. En d´eduire le programme diviseurs qui pour un entier ndonn´e, v´erifie si kdivise npour
kparcourant les entiers de 1 `a n. A chaque ´etape, lorsque kdivisera n, le programme
affichera la valeur de k.
3. On souhaite sauvegarder les r´esultats obtenus dans un fichier texte. A l’aide de la com-
mande open, ouvrir un fichier texte en mode ´ecriture puis `a chaque ´etape, ajouter le diviseur
´eventuellement obtenu. On n’oubliera pas de fermer son fichier `a la fin du programme.
Exercice 2.5 On souhaite construire un programme de bienvenue.
1. Dans le langage Python, construire le programme bienvenue qui ne prend pas d’argument,
mais qui demande les informations suivantes `a l’utilisateur :
•quel est votre nom ?
•ˆetes-vous une fille ou un gar¸con ?
•quel ˆage avez-vous ?
puis renvoie le cas ´ech´eant : Bonjour, monsieur, madame ou mademoiselle XXX. On
poyrra convenir qu’une fille de moins de 18 ans peut se faire appeler mademoiselle.
2. Importer la librairie time, puis `a l’aide des instructions suivantes :
L=localtime(); heure=L[3]
adapter votre programme afin que celui-ci renvoie Bonjour ou Bonsoir en fonction de
l’heure affich´ee.
1