Developpez.com - Rubrique Python

Le Club des Développeurs et IT Pro

Sélection des meilleurs exercices corrigés pour apprendre la programmation Python

Par l'équipe de la Rédaction

Le 2021-09-24 01:03:37, par Community Management, Community Manager
Chers membres du club,

J'ai le plaisir de vous annoncer la création de la page des meilleurs exercices pour apprendre la programmation Python

Sélection des meilleurs exercices corrigés
pour apprendre la programmation Python

Vous trouverez les meilleurs exercices, accessibles aux débutants, avec des énoncés clairs et complets suivis de solutions détaillées. Pour l'instant, la page contient une série d'exercices simples abordant les notions de généralité, les boucles, les fonctions prédéfinies, les interfaces graphiques (Tkinter) ou encore les fichiers; bien sûr, d'autres exercices sont en cours d'élaboration.

Vos contributions sont les bienvenues, par conséquent si vous souhaitez participer à l'enrichissement de cette page, vous pouvez :

  • soit soumettre votre proposition directement sur la plateforme ;
  • soit poster un message dans ce présent fil.


Bonne lecture

Retrouvez les meilleurs cours et tutoriel pour apprendre la programmation Python
  Discussion forum
29 commentaires
  • Community Management
    Community Manager
    Chers membres du club,

    Suite à vos remarques concernant les solutions proposées, des dispositions ont été prises pour répondre aux préoccupations de tous. Ainsi, une première revue est en cours pour :

    • proposer une solution en Python 3 pour celles initialement proposées en Python 2;

    • corriger l'interface pour que plusieurs solutions puissent être proposées à chaque exercice.


    Merci à tous pour vos pertinentes remarques.

    Retrouvez les meilleurs cours et tutoriel pour apprendre la programmation Python
  • Sve@r
    Expert éminent sénior
    Bonjour à tous

    L'équipe de Développez.com a décidé d'ouvrir une page dédiée à des exemples d'exercices Pythons avec corrigés. Les exercices proviennent des différents tutoriels qu'on trouve sur le site (ex. Swinnen), mais à partir de maintenant, des exercices proposés par des intervenants du forum.
    Par exemple :

    ...et d'autres à suivre encore.

    La page des exercices : https://python.developpez.com/exercices
    Cette page est encore à ses balbutiements, mais nous espérons l'étoffer au fil du temps. Bien entendu, tous les volontaires pour proposer de nouveaux exercices (+ corrigés !!!) seront les bienvenus.

    Chaque exercice se voit ensuite offrir généralement 3 solutions
    1. la première, assez classique, reprenant généralement les principes de l'algorithmique
    2. une seconde contenant quelques raccourcis de syntaxe en Python
    3. la dernière essayant d'offrir une solution full Python (on sait que ce n'est pas évident car Python est assez open dans sa syntaxe donc on a essayé de faire au mieux)


    Les exercices ont été relus, testés, vérifiées et repris les uns par les autres. Ont participé (par ordre alphabétique)

    Mais cette liste ne demande qu'à s'agrandir
  • f-leb
    Responsable Arduino et Systèmes Embarqués
    Salut,

    Envoyé par Beginner. 
    Comment peut-on proposer un exercice ?

    Pour le moment, en postant vos propositions ici-même (entre les balises [quote]... [/quote] par exemple).
    Si des membres deviennent des habitués ici, ils pourront être nommés "rédacteur" et saisir eux-mêmes les exercices dans l'interface (sous le contrôle de Sve@r qui s'y colle).

    Envoyé par Beginner. 
    Est-il obligatoire de fournir les trois types de solutions que tu mentionnes ?
    Est-ce que certaines de ces solutions peuvent être éventuellement proposées par quelqu'un d'autre ?

    Disons qu'on essaie d'avoir plusieurs propositions de correction, de la solution algorithmique classique à la solution « pythonesque » qui met tout le monde d'accord en deux lignes...
    Après, cette discussion peut justement servir à se mettre d'accord sur l'énoncé et le corrigé. Que chacun fasse au mieux, on peut avoir une idée d'exercice sans trop savoir comment y répondre, les autres membres pourront prendre le relais afin d'améliorer l'exercice. Quand l'exercice sera au point grâce à vos contributions, il sera publié sur la page
  • f-leb
    Responsable Arduino et Systèmes Embarqués
    Envoyé par Beginner.
    Pourquoi ne pas juste écrire print(chaine[::-1]) ? Ou au moins précisez que cela est possible ?
    En effet, c'est maintenant rajouté.
  • MPython Alaplancha
    Membre expérimenté
    Bonjour,
    Remarques:
    Il me semble qu'il aurait été juste d'utiliser l'expression "Voir une solution" que "Voir la solution".
    Lorsque je lis:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # Insertion d'un caractère d'espacement dans une chaîne  
       
    # Chaîne fournie au départ :  
    ch = "Véronique"  
    # Caractère à insérer :  
    cr = "*"  
    # Le nombre de caractères à insérer est inférieur d'une unité au  
    # nombre de caractères de la chaîne. On traitera donc celle-ci à  
    # partir de son second caractère (en omettant le premier).  
    lc = len(ch)	# nombre de caractères total  
    i = 1	     # indice du premier caractère à examiner (le second, en fait)  
    nch = ch[0]    # nouvelle chaîne à construire (contient déjà le premier car.)  
    while i < lc:  
      nch = nch + cr + ch[i]  
      i = i + 1  
    # Affichage :  
    print(nch)
    je me dis que la réponse n'apprend pas la programmation python mais juste quelques notions d'algorithmie.
    Devrait figurer comme solution:
    Code :
    print("*".join('véronique'))
  • Beginner.
    Membre expert
    Salut,

    Merci à vous pour cette initiative.

    Comment peut-on proposer un exercice ?
    Est-il obligatoire de fournir les trois types de solutions que tu mentionnes ?
    Est-ce que certaines de ces solutions peuvent être éventuellement proposées par quelqu'un d'autre ?
  • Beginner.
    Membre expert
    Salut,

    J'ai une question par rapport à la réponse 2 de cet exercice : Inversion d'une chaîne de caractères :

    Code :
    1
    2
    3
    4
    5
    6
    chaine = "zorglub" 
    longueur_chaine = len(chaine) 
      
    # Par découpage de la chaîne (slicing) 
    # La séquence est entièrement pacourue en partant de la fin, par pas de -1 
    print(chaine[longueur_chaine::-1])
    Pourquoi ne pas juste écrire print(chaine[::-1]) ? Ou au moins précisez que cela est possible ?
  • Sve@r
    Expert éminent sénior
    Envoyé par Beginner.
    Comment peut-on proposer un exercice ?
    C'est en cours de finition

    Envoyé par Beginner.
    Est-il obligatoire de fournir les trois types de solutions que tu mentionnes ?
    Non rien n'est obligatoire (par exemple l'exo "suite de Syracuse" n'a qu'une solution) mais c'est souvent assez naturel. Il faut bien que tu comprennes que ce sont des exercices de (et pour) débutants qui n'ont donc pas encore les "réflexes" Python. On peut pas alors leur envoyer dans la tronche des codes "online" avec listes en intension en tous sens.
    Donc fatalement on préfère une solution se rapprochant de ce qu'ils voient en algo. Ensuite rien n'interdit de se faire plaisir mais en essayant de ne pas trop en mettre d'un coup. Et donc tu arriveras (enfin à mon avis) aux 3 solutions tout à fait naturellement. Après si tu penses que 2 suffisent ou que 4 méritent...

    Envoyé par Beginner.
    Est-ce que certaines de ces solutions peuvent être éventuellement proposées par quelqu'un d'autre ?
    Euh... en général si tu proposes un exo tu es présumé savoir le résoudre (sinon ce ne serait pas très différent d'un PO venant exposer son souci et attendant en retour un code tout fait )
    Ensuite si tu veux dire que tu peux proposer une solution à un exo posé par d'autres, oui bien entendu. Mais ce n'est pas non plus un concours à celui qui a la plus grosse (f-leb m'a rapidement rappelé ce détail sur un de mes exos ). Mais si tu penses qu'une solution peut être améliorée sur certains (gros) détails oui pas de souci.
  • f-leb
    Responsable Arduino et Systèmes Embarqués
    Envoyé par Sve@r
    .. des exercices proposés par des intervenants du forum.
    Par exemple :

    ...et d'autres à suivre encore.
    Quelques exercices supplémentaires :


    ...et d'autres à suivre encore
  • f-leb
    Responsable Arduino et Systèmes Embarqués
    Envoyé par Sve@r
    .. des exercices proposés par des intervenants du forum.
    Par exemple :

    ...et d'autres à suivre encore.
    Quelques exercices supplémentaires :


    ...et d'autres à suivre encore
    Et voilà de nouveaux exercices, ceux-là ont vocation à vous triturer (un peu) le cerveau :


    Merci à Pyramidev pour son aide précieuse dans ses propositions de solutions

    Hop, next !