Recueil d'exercices pour apprendre Python au lycée
Liens vers des exercices de base du site Codingame
Vous trouverez ci-dessous une liste d'exercices pour débutants contenant principalement les notions de bases en programmation.
Pour pouvoir y accéder, il faudra se connecter avec un compte (facile à créer si besoin). Il faut ensuire clicker sur "Tester dans l'IDE" pour lancer le jeu.
Sur la gauche se trouve l'énoncé (en anglais majoritairement mais facilement compréhensible avec un minimum d'entrainement).
Sur la droite on peut taper son code directement. Ne pas oublier de selectionner Python 3 comme langage. Pour savoir si notre code est bon, il faut valider tous les tests en appuyant sur le bouton "tous les tests".
La réelle difficulté quand on débute sur ce site est de comprendre comment gérer les inputs : Tous les exercices vont demander de créer un programme qui fait une action en fonction de ce qu'on lui donne en entrée (par exemple on donne une phrase, il faut la renvoyer écrite à l'envers).
Chaque fonction input() (qui est déjà marquée de base et sauvegardée dans une variable, il n'y a rien à faire) va correspondre à une des données en entrée qu'on pourra ensuite utiliser pour créer notre programme qui devra afficher (avec print) le ou les résultats attendus.
Si vous avez de difficultés avec l'interface, vous pouvez trouver facilement sur youtube des vidéos explicatives.
Remarque : La plupart des exercices proposés sont des "Clash of Code" du site qui sont en fait des mini tournoi ou 8 codeurs s'affrontent pour résoudre ces exercices en moins de 15 min. Quand vous pensez maitriser assez les bases, c'est une alternative amusante (et un peu stressante) pour progresser. L'avantage est que vous pouvez voir le code des autres en fin de partie ce qui permet de progresser beaucoup plus rapidement.
Présentation du tableau ci-dessous
Ce tableau ne contient que des liens vers des exercices de base. Le numero correspond à la difficulté ou au degré de maitrise de la notion pour pouvoir le réussir. C'est très difficile d'estimer la difficulté ou même les notions utiles pour résoudre un problème car il peut y avoir plusieurs solutions très distinctes. La connaissance de certaines fonctions particulières peuvent par exemple permettre de résoudre le problème en quelques lignes alors que sans il en faudra beaucoup plus. Ce tableau est donc juste une indication des notions qui peuvent être utile.
Voici quelques exemples pour pouvoir juger du niveau de difficulté correspondant aux notions.
Par exemple pour les conditions : le niveau 1 correspond à une utilisation simple des conditions if, elif et else. Le niveau 2 demanderait d'enchainer des conditions à la chaine ou bien utiliserait des conditions un peu complexe.
Dans le même ordre d'idée, pour les boucles for, le niveau 1 correspond à une utilisation simple d'une boucle (avec range ou bien une liste ou une chaine de caractères). Le niveau 2 correspond à un enchainement de boucles for. Le niveau 3 demande une maitrise des boucles for avec par exemple l'utilisation de break et else.
Par exemple pour les chaines de caractères : le niveau 1 correspond à une utilisation basique des chaines (récupérer sa longueur, un caractère, faire une boucle dessus...). Le niveau 2 demanderait un peu plus de maitrise (connaitre les fonctions ord et chr pour le codage décodage par exemple). Le niveau 3 correspond à une bonne maitrise de toutes les fonctions liées aux chaines de caractères.
Pour la colonne "Autre, les notions entre parenthèses sont facultatives mais peuvent simplifier la résolution du problème.
La notion de difficulté étant très subjective, cela ne coute rien d'aller voir des exercices qui peuvent sembler plus compliqués. Des fois une bonne idée permet de contourner la difficulté.
Remarque : Comme les données en entrée sont des chaines de caractères, il vaut mieux maitriser un minimum la transformation en entier (avec la fonction int()
) ou bien la transformation en liste (en compréhension ou bien avec la fonction .split()
).