Exercices Python
Exercices Python
Exercices Python
Roland Becker
12 septembre 2023
2 Algorithmique 3
3 Modules 4
4 Graphisme 5
5 numpy 6
1 Les bases
1. Écrire un programme, qui à partir d’un rayon donné par l’utilisateur, calcule le diamètre,
le périmètre et la surface d’un cercle de rayon donné.
2. Écrire un programme, qui à partir d’un nombre entier donné par l’utilisateur, détermine
si le nombre est pair ou impair et calcule ensuite combien de fois ce nombre est divisible
par deux ou par trois.
3. Écrire un programme, qui à partir d’un nombre entier donné par l’utilisateur, détermine
si le nombre est premier ou pas.
1
2. Écrire des fonctions qui donnent les résultats suivant (et généraliser à un nombre donné
de lignes et de colonnes)
1. *******
2. *
*
*
3. *******
*******
*******
4. *******
* *
*******
3. Soit ’alphabet=abcdefghijklmnopqrstuvwxyz’. En utilisant la syntaxe de ’slice’
(extraction) alphabet[start:stop:step] produire les chaînes caractères suivantes.
(Par exemple ’a’ est ’alphabet[0]’).
1. ’z’
2. ’zyxwvutsrqponmlkjihgfedcba’
3. ’efgh’
4. ’uvwx’
5. ’vwxyz’
6. ’fhjlnprtvxz’
7. ’yvspmjgd’
1. Générer un nombre aléatoire entier entre 1000 et 9999 et le convertir en une liste de digit,
par exemple 2020 → [2, 0, 2, 0].
2. Poker (1). On représente une carte d’un jeu de 52 carte par une chaîne de caractère de
longueur deux, par example ’CD’ est la dame de coeur.
• Construire une liste qui représente le jeu complet.
• Mélanger les cartes. On peut se servir de random.shuffle().
• Distribuer cinq cartes à un nombre de joueurs donné. Attention, il ne doit pas y avoir
de doublons.
• Écrire une fonction qui affiche en clair les cartes (main) d’un joueur.
• Écrire qui trouve le paires (deux cartes de la même valeur), brelan (trois cartes de la
même valeur) et carrés (quatre cartes de la même valeur).
3. On s’intéresse à coder un texte.
• Construire une chaîne de caractères contenant l’alphabet, ’ ’ et les chiffres (alphabet
augmenté).
• Convertir (c2l) une chaîne de caractères contenant les lettres de l’alphabet, des blancs,
ou des chiffres en une liste indiquant pour chaque caractère sa position dans l’alpha-
bet augmenté.
• Écrire la conversion dans l’autre sens (l2c).
2
• Soit k un nombre naturel, la clé. On utilise c2l, on rajoute à tous éléments de la liste k
(attention, l’indice ne doit pas dépasser le nombre d’éléments mois un) et on recon-
vertir en utilisant l2c. Voilà un texte brouiller.
• Écrire une fonction pour retrouver le texte originel.
• list a bien une fonction max, mais pas de fonction argmax qui donnerait l’indice
(ou les indices !) où se produit le maximum des valeurs. Écriez en une.
4. Générer une list l de nombre aléatoires entiers entre -20 et +20 de longueur 50. On veut
s’avoir combien de nombres différent p contient l. Pour cela, on peut transformer la liste
en set. Ce nombre est une variable aléatoire. En répétant n fois, calculer une estimation
de son espérance en fonction de n
1. Écrire une fonction qui détermine, si un dict donné correspond à une injection. Si c’est
la cas, construire le dict qui correspond à l’application inverse.
2. Tester votre fonction en construisant des dictionnaires d’entiers entre 1 et 10 et de lettre
entre ’a’ et ’j’.
3. Pour la marche aléatoire, utiliser un dictionnaire pour compter toutes les occurrences des
positions.
4. Utiliser sorted(d.items()) pour un dictionnaire d pour créer une liste des fréquences
d’une marche aléatoire.
2 Algorithmique
3
2. 1 + 3 + 5 + · · · + 99
3. 1 × 2 × 3 × · · · × 22
2. Écrire une fonction en python pour calculer la somme des nombres entiers entre a et b
avec a, b ∈ N et a ⩽ b.
L’ordinateur tire un nombre entier entre 0 at 100 au hasard. L’utilisateur doit le trouver en
proposant des valeurs. L’ordinateur indique pour chaque nombre proposé s’il est juste, trop
petit ou trop grand. A la fin, il affiche le nombre de propositions faites par l’utilisateur.
Le joueur paie 2 euros par jeu, qui consiste au lancement de deux dés. Si le joueur obtient un
double, il garde sa mise et gagne la somme des des points marqués. Écrire un programme pour
simuler ce jeu. Conseilleriz-vous ce jeu ?
On considère la marche aléatoire du cours (marche aléatoire standard, loi de Bernoulli avec
p = 1/2).
1. Écrire une fonction pour la génération d’une marche aléatoire de longueur m ∈ N.
2. Écrire une fonction, qui, pour une marche aléatoire donnée, calculer le premier indice i∗
tel que le marche retourne à zéro.
3. Écrire une fonction qui, pour n ∈ N donné, calcule une approximation de l’espérance de
i∗ pour n marches aléatoire.
3 Modules
4
Exercise 12 poker (2) (Section 3)
4 Graphisme
Exercise 13 (Section 4)
1. Utiliser plt.plot() pour tracer un triangle de sommets (−2, −6), (2, −4), (1, 3).
2. Placer des croix bleues aux sommets.
Exercise 14 (Section 4)
Soit n ∈ N et pn la probabilité que parmis n personnes il n’y a pas deux personnes nées le
même jour. On sait que
Y
n−1
k
pn = 1− .
k=1
365
On continue l’exercice 5.
1. Tracer une marche aléatoire.
2. Tracer ses fréquences comme un histogramme.
3. Comment dépendent la moyenne et la variance de n ?
5
5 numpy
1. Réécrire l’exercice 3.4 à l’aide de numpy, en utilisant un vecteur aléatoire de taille 50 avec
entrées entiers entre -20 et 20. Calculer p, le nombre de nombres différents contenus dans
ce vecteur. Calculer le nombre d’éléments supérieur à 10.
Généralisation : soit m, n ∈ N. On remplace « 50 » par n et « 20 » par m. Faites des simula-
tions pour estimer l’espérance de p en fonction de n et de m.
2. Créer une matrice A de taille 3×3 au hasard. Calculer les valeurs propres de AT A. Estimer
l’espérance de la plus petite valeur propre.
import time
t0 = time.time()
appel_de_la_fct()
dt = time.time()-t0