IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

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


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Community Manager

    Profil pro
    Inscrit en
    Avril 2014
    Messages
    4 207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2014
    Messages : 4 207
    Par défaut [Exercices] Sélection des meilleurs exercices corrigés pour apprendre la programmation Python
    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


    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
    Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

  2. #2
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 914
    Billets dans le blog
    7
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    print("*".join('véronique'))

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 688
    Par défaut
    Salut,

    Citation Envoyé par Hominidé Voir le message
    Il me semble qu'il aurait été juste d'utiliser l'expression "Voir une solution" que "Voir la solution".
    Le code qu'on va écrire dépend du Python que l'on connaît.

    Lorsqu'il s'agit d'exercices trouvés dans des tutos (comme c'est ici le cas pour la majorité des exercices proposés), le but de l'exercice sera d'exercer algorithmique, programmation et la pratique des constructions du langage montrées dans le chapitre correspondant (et les chapitres précédents).

    Il est clair qu'on ne peut pas juger d'une solution en dehors du contexte (le cours et le chapitre pour lequel il est proposé). Et la plupart des cours donnent déjà une correction à la plupart des exercices proposés.

    Ce genre de tuto. a un intérêt plus que limité.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 914
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par wiztricks Voir le message

    Ce genre de tuto. a un intérêt plus que limité.

    - W
    Je constate aussi des réponses écrites pour python2, ce qui risque de bloquer un débutant des premières heures.

  5. #5
    Membre éprouvé
    Profil pro
    programmeur du dimanche
    Inscrit en
    Novembre 2003
    Messages
    955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 955
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    ...
    je me dis que la réponse n'apprend pas la programmation python mais juste quelques notions d'algorithmie.
    Devrait figurer comme solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("*".join('véronique'))
    Comme l'auteur est Gérard Swinnen, je suppose qu'il s'agit d'exercices pour des enfants de primaire pour l'enseignement d'informatique - mathématique.
    La solution proposée est anti-pythonique et très lente, mais elle est facile à comprendre pour des enfants.

    Pour apprendre le python pour quelqu'un ayant déjà fait de l'algorithmie et de préférence ayant des notions d'informatique, le mooc python de l'INRIA sur fun mooc est très bien.

  6. #6
    Membre éprouvé Avatar de marsupial
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2014
    Messages
    1 829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2014
    Messages : 1 829
    Par défaut
    Il s'agit d'un wiki spécial collégien qui ont des TI83 pour programmer en python. Très bon tuto.

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Utiliser une boucle classique ce n'est pas "pytonique" ?

    Au fait la fonction "join" n'est pas spécifique à python, me semble-t-il...

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 688
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Utiliser une boucle classique ce n'est pas "pytonique" ?
    Il n'y a rien de "pythonique" dans la construction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    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
    mais il faut bien commencer par là lorsqu'on débute (en programmation).

    Citation Envoyé par Beginner. Voir le message
    Au fait la fonction "join" n'est pas spécifique à python, me semble-t-il...
    Les chaines de caractères sont un des types de base de la plupart des langages. Et c'est comme çà depuis le début des ordinateurs et de la programmation.
    Tout ce temps a permis aux programmeurs de définir les opérations "utiles": celles qui faudrait coder (soi même) si elles n'était pas incluses dans les bibliothèques de base du langage.
    Du coup, on retrouve les mêmes partout...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre éprouvé
    Profil pro
    programmeur du dimanche
    Inscrit en
    Novembre 2003
    Messages
    955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 955
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Salut,
    Utiliser une boucle classique ce n'est pas "pytonique" ?
    C'est mieux si on peut les éviter.

    En python string n'est pas une suite de caractères binaires comme en c. C'est un objet immuable : on ne peut modifier la string. ça signifie au niveau machine qu'à chaque itération de la boucle, une nouvelle chaîne est allouée, et une autre est déréférencée en attendant que le garbage collector la nettoie.

    De plus, les boucles classiques à la c sont lentes en python par rapport à toutes les autres méthodes (itérateurs, compréhensions de liste), sans compter le risque d'erreur sur la condition de fin de boucle.

    "".join() est clairement la meilleure solution, car on appelle une fonction de la librairie standard écrite en c optimisé, on ne pourra que difficilement faire mieux.

    Toutes proportions gardées, c'est juste une question de style et de millisecondes.

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut Exercices en Python avec corrigés
    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
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    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 ?

  12. #12
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 124
    Billets dans le blog
    47
    Par défaut
    Salut,

    Citation Envoyé par Beginner. Voir le message
    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).

    Citation Envoyé par Beginner. Voir le message
    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

  13. #13
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Comment peut-on proposer un exercice ?
    C'est en cours de finition

    Citation Envoyé par Beginner. Voir le message
    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...

    Citation Envoyé par Beginner. Voir le message
    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.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Merci pour vos réponses.

    Citation Envoyé par Sve@r Voir le message

    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 )
    Oui je comprend mais en fait je voulais parler des trois types de solution : tu peux avoir seulement une solution du premier type et alors ma question c'est est-ce que, dans ce cas, les deux autres types pourraient être proposées par quelqu'un d'autre...

  15. #15
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Oui je comprend mais en fait je voulais parler des trois types de solution : tu peux avoir seulement une solution du premier type et alors ma question c'est est-ce que, dans ce cas, les deux autres types pourraient être proposées par quelqu'un d'autre...
    Ah tout à fait. Ca a d'ailleurs été le cas sur les exos déjà présentés. Et celui qui a posé l'exo peut alors voir lui-même ce que donne sa propre solution sous forme plus "Python"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  16. #16
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 124
    Billets dans le blog
    47
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    .. 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

  17. #17
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 124
    Billets dans le blog
    47
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    .. 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 !

Discussions similaires

  1. [Exercices] Sélection des meilleurs exercices corrigés pour apprendre l'algorithmique
    Par Malick dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 16/05/2019, 04h16
  2. Les meilleurs cours et tutoriels pour apprendre la programmation Python
    Par Community Management dans le forum Général Python
    Réponses: 2
    Dernier message: 06/07/2018, 23h45
  3. Réponses: 13
    Dernier message: 12/12/2008, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo