Exercices Python
Sites pour apprendre en s’amusant
Exercices ciblés
Les exercices suivants portent sur des éléments bien précis du langage Python.
Exercices divers
Comptage de lettres
compterLettre(texte, lettre)
ayant pour arguments une chaîne de caractères texte
et un caractère lettre
et qui renvoie un dictionnaire qui contient la fréquence de la lettres dans la chaîne.
compterLettres(texte)
ayant pour argument une chaîne de caractères texte
et qui renvoie un dictionnaire qui contient la fréquence de toutes les lettres de la chaîne entrée.par exemple, compterLettres("L'informatique, c'est fantastique !")
doit renvoyer : {'t': 4, 'n': 2, 'i': 3, ',': 1, 'o': 1, ' ': 3, 'f': 2, 'm': 1, "'": 2, 's': 2, 'L': 1, 'u': 2, 'c': 1, 'r': 1, 'e': 3, '!': 1, 'a': 3, 'q': 2}
Rectangles
Soient deux rectangles définis par des listes de la forme [positionX, positionY, largeur, hauteur]
.
intersection()
qui à partir de deux rectangles ainsi définis renvoie, s'il existe, le rectangle intersection.
Cinématique
d
parcourue par un point qui s'est déplacé à vitesse constante v
pendant un temps t
.
d
et t
.
La vitesse n'est plus constante. Elle est donnée par une fonction v(t)
.
(voir https://fr.wikipedia.org/wiki/Calcul_numérique_d'une_intégrale)
remarque : écrire cet algorithme dans une fonction distance()
acceptant comme arguments :
la fonction v
, l'intervalle de temps (t0, t1)
pendant lequel estimer la distance parcourue, et la durée dt
de l'échantillon de calcul.
Recherche dans une liste (séquentielle et dichotomique)
Il est fréquemment nécessaire de rechercher un élément particulier dans une liste (de nombres, de mots, de couleurs, ....).
Soit une liste de nombres réels, classés par ordre croissants :
from random import random l = sorted([random() for i in range(1000)])
L'objectif de l'exercice est d'obtenir l'indice i
et la valeur v
de l'élément de la liste le plus proche d'un nombre n
donné (mais inférieur).
On envisage deux types de fonction : une fonction séquentielle et une fonction récursive.
Rubik's cube
tourner_Rubik()
opérant une rotation d'un quart de tour (sens trigonométrique) des cases du Rubik'cube.
Suite de Conway
1 11 21 1211 111221 312211 13112221 1113213211 31131211131221 …
"Avez-vous deviné la règle de construction de cette suite ? Le premier terme se compose de un « un », puis le deuxième énonce le premier « un un ». Ce deuxième terme se compose de deux « un », donc le troisième, énonçant le deuxième, est « deux un ». Il est composé de un « deux » et de un « un », et donc est suivi par « un deux un un », et ainsi de suite."
J.H. Conway , The Book of Numbers , Springer-Verlag, 1996
Conway(u_n)
acceptant en argument une chaîne de caractères représentant un terme \(u_n\) de la suite de Conway et renvoyant le terme \(u_{n+1}\).
Génération de code HTML
<!DOCTYPE html> <html> <body> <table border="1" style="width:100%"> <tr> <td>Père</td> <td>Homer</td> </tr> <tr> <td>Mère</td> <td>Marge</td> </tr> <tr> <td>Fils</td> <td>Bart</td> </tr> </table> </body> </html> |
7 segments
sept_seg()
capable de convertir un nombre décimal dans un format pour afficheurs "7 segments".Par exemple, la chaîne de caractères "23" sera convertie en une chaîne de caractères qui s'affichera comme ceci :
_ _ _| _| |_ _|Ce qui correspond à la chaîne de caractères :
" _ _ \n _| _|\n|_ _|\n"