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 :

Créer un quizz pour m'aider dans mes révisions [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut Créer un quizz pour m'aider dans mes révisions
    Salut à tous!
    Je suis tout nouveau sur le forum et j'apprends tout juste à programmer Python! Je ne connais vraiment pas grand chose pour le moment donc soyez indulgents 😄


    Je voudrais faire un quizz sur Python pour m’aider pendant mes révisions
    Question: Quels sont les Inhibiteurs de l’acétylcholinestérase dans le traitement d’Alzheimer?
    Réponse: Rivastigmine, Galantamine, Donépézil

    Mais je voudrais une petite contrainte
    - La réponse doit contenir les 3 médicaments pour être juste (si je n’en mets que deux c’est faux par exemple)
    - On peut répondre dans le désordre

    Donc une bonne réponse serait
    Rivastigmine, Galantamine, Donépézil
    Mais aussi Rivastigmine, Donépézil, Galantamine

    J’ai fait un code, mais quelque soit ma réponse il me renvoie « Faux »
    Est-ce que vous voyez pourquoi? Comment l'améliorer?

    Merci d'avance! 🙂

    Mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    médocs= ["Donépézil","Rivastigmine","Galantamine"]
    import itertools
    combinaisons = list(itertools.permutations(médocs))
     
    question1 = input("Quels sont les Inhibiteurs de l'acétylcholinestérase?")
    if question1.split(',') in combinaisons:
        print("Exact!")
    else:
        print ("Faux")
     
    print(question1)
    print(médocs)
    *J'ai mis print(question1) et print(médocs) pour comparer les deux, mais même quand les deux sont strictement pareils, le test me sort "faux"...
    * Pour le question1.split(',') c'est un ami qui m'a conseillé de le mettre

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Salut,

    Citation Envoyé par Mab97122 Voir le message
    J’ai fait un code, mais quelque soit ma réponse il me renvoie « Faux »
    Est-ce que vous voyez pourquoi? Comment l'améliorer?
    Python a toujours raison... reste à comprendre pourquoi. Et pour çà, vous connaissez l'instruction "print" et si vous affichez les contenus avant de tester, çà pourrait peut être vous donner des idées.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut
    Salut wiztricks,
    Merci pour ta réponse rapide!
    Mais du coup je ne vois vraiment pas d'où vient le problème...
    Encore une fois j'ai des compétences en Python assez limitées et là je ne vois pas comment faire mieux 😅

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Va plus loin dans la compréhension de ce que fait ce code, et de comment évolue les variables !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print(question1.split(','))
    print(combinaisons)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2019
    Messages : 5
    Par défaut
    Salut lg_53
    Je vois mieux ce que fait la commande question1.split(',') , merci!

    Ce que fait la boucle if else du code c'est bien de dire:
    " Si la réponse a la question est l'une des permutations suivantes
    [('Donépézil', 'Rivastigmine', 'Galantamine'), ('Donépézil', 'Galantamine', 'Rivastigmine'), ('Rivastigmine', 'Donépézil', 'Galantamine'), ('Rivastigmine', 'Galantamine', 'Donépézil'), ('Galantamine', 'Donépézil', 'Rivastigmine'), ('Galantamine', 'Rivastigmine', 'Donépézil')]

    alors afficher 'Exact!' " ?

    Mais même quand je copie-colle une des combinaisons, par exemple ('Donépézil', 'Rivastigmine', 'Galantamine'), le code me renvoie "faux"...
    L'erreur vient-elle de la boucle if else? 😄

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par Mab97122 Voir le message
    L'erreur vient-elle de la boucle if else? 😄
    Appliquez vous à regardez la sortie de print(question1.split(',')).
    Il y a des crochets carrés autour. alors que les éléments de votre liste ont de simples parenthèses: c'est ce qui fait la différence entre listes et tuples (et une comparaison entre des patates et des choux). tuple(question1.split(',')) serait comparable pour autant que le .split(',') n'ait pas laissé des espaces au début ou à la fin de chaque chaîne de caractères.

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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Project Anarchy intègre Scaleform pour vous aider dans la création d'interface utilisateur
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 23/10/2013, 10h03
  2. Réponses: 1
    Dernier message: 16/01/2013, 18h07
  3. Cherche qqn pour m'aider dans un projet
    Par Qu1ckyx dans le forum E-Commerce
    Réponses: 0
    Dernier message: 02/03/2012, 13h27

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