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 :

Débutant demande de l'aide.


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut Débutant demande de l'aide.
    Bonjour à tous,
    Je suis un lycéen confiné, et un de mes profs nous a demandé de faire des exercices d'initiation en écriture python.
    Voici l'exercice, sur lequel je bloque depuis plusieurs jours sans parvenir à trouver où est mon erreur :

    Voici l'exercice :
    Écrivez un programme qui toutes les 50ms, allume la LED verte si la température est entre 16 et 18 degrés inclus, et la LED rouge sinon. L'autre LED doit être éteinte.
    Votre programme ne peut contenir qu'une seule fois l'instruction if.
    Votre programme doit commencer par la ligne : from quickpi import *
    Les fonctions disponibles pour contrôler le robot sont :
    readTemperature(thermometer) retourne la température ambiante
    setLedState(led, state) modifie l'état de la LED : True pour l'allumer, False pour l'éteindre
    sleep(milliseconds) met en pause l'exécution pendant une durée en ms
    Les mots-clés suivants sont autorisés : while, if, else, elif, and, or.
    Les mots-clés suivants sont interdits : for, not, list, set, crochets [ ], accolades { }, variables, def, lambda, break, continue, setattr, map, split.
    Les variables sont interdites.

    Voici ma programmation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    from quickpi import *
    while True:
        readTemperature("thermometer1")
        if (16<"thermometer1"<=18):
            setLedState("green1", True) and setLedState("red1", False)
        else:
            setLedState("red1", True) and setLedState("green1", False)
        sleep(50)
    Au test de validation, lancé aux températures successives de 15, 19, 16 et 18, mon programme est rejeté pour l'erreur suivante : "test échoué: green1 a été dans l'état off au lieu de on à t=100ms
    Je n'arrive pas à avancer !
    Merci de votre aide !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par défaut
    Citation Envoyé par alex1322 Voir le message
    Voici l'exercice, sur lequel je bloque depuis plusieurs jours sans parvenir à trouver où est mon erreur :
    Si vous écrivez (16< "thermometer1" <=18) vous comparez une chaine de caractères "thermometer1" a des entiers.

    Et si on vous dit "readTemperature("thermometer1") retourne la température", c'est qu'il faut stocker/assigner ce retour à une variable.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si vous écrivez (16< "thermometer1" <=18) vous comparez une chaine de caractères "thermometer1" a des entiers.

    Et si on vous dit "readTemperature("thermometer1") retourne la température", c'est qu'il faut stocker/assigner ce retour à une variable.

    - W
    Bonjour wiztricks et merci pour votre réponse, mais je ne comprends pas bien. De plus l'exercice interdit l'utilisation des variables.
    Pouvez vous m'en dire plus ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par défaut
    Citation Envoyé par alex1322 Voir le message
    De plus l'exercice interdit l'utilisation des variables.
    Dans ce cas, vous pouvez mettre directement l'appel de la fonction dans la condition, ce qui évite la création d'une variable intermédiaire.

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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Dans ce cas, vous pouvez mettre directement l'appel de la fonction dans la condition, ce qui évite la création d'une variable intermédiaire.

    - W
    Je crois que vous n'avez pas retenu que j'était un lycéen débutant. Merci pour vos réponses mais elles ne sont pas à ma portée

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par défaut
    Citation Envoyé par alex1322 Voir le message
    Je crois que vous n'avez pas retenu que j'était un lycéen débutant. Merci pour vos réponses mais elles ne sont pas à ma portée
    Plutôt qu'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         a = f(i)
         if 1 < a < 10:
               ...
    vous écrivez directement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         if 1 < f(i) < 10:
               ...
    Quand vous demandez de l'aide, il faut pouvoir reproduire le problème pour tester si la solution fonctionne ou pas....
    Apprendre à programmer avec Python, pas besoin de le faire sur un RaspberryPI (ou plutôt vous avez besoin de savoir un peu programmer avec Python dans un environnement "confortable" avant de vouloir le faire sur un environnement exotique).

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

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut
    C'est de moins en moins clair...
    Je déduis de votre réponse la modification suivante de mon écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    from quickpi import *
    while True:
        if 16 < readTemperature("thermometer1") <= 18:
            setLedState("green1", True) and setLedState("red1", False)
        else:
            setLedState("red1", True) and setLedState("green1", False)
        sleep(50)
    c'est ce que vous vouliez me faire comprendre ?
    et le programme ne fonctionne toujours pas, j'obtiens le même retour d'erreur

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par défaut
    Citation Envoyé par alex1322 Voir le message
    c'est ce que vous vouliez me faire comprendre ?
    et le programme ne fonctionne toujours pas, j'obtiens le même retour d'erreur
    ah ben oui mais, une erreur après l'autre.
    Et là pour le coup, c'est vous qui devez expliquer ce que vous avez essayé de faire en écrivant: setLedState("green1", True) and setLedState("red1", False)

    Parce que bon, c'est bien gentil d'écrire n'importe quoi et de crier "à l'aide", mais il y a aussi des tutos. pour apprendre les bases (et un temps de confinement qui vous permet d'y passer du temps).

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

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 5
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    ah ben oui mais, une erreur après l'autre.
    Et là pour le coup, c'est vous qui devez expliquer ce que vous avez essayé de faire en écrivant: setLedState("green1", True) and setLedState("red1", False)

    Parce que bon, c'est bien gentil d'écrire n'importe quoi et de crier "à l'aide", mais il y a aussi des tutos. pour apprendre les bases (et un temps de confinement qui vous permet d'y passer du temps).

    - W
    Mais je n'écris pas n'importe quoi ! il s'agit des consignes de l'exercice, que j'ai indiqué au début de mon post !
    si vous lisiez un peu au lieu d'être arrogant et péremptoire immédiatement !? c'était indiqué au début aussi que je ne peux pas utiliser les variables
    et puis si ça vous gonfle que je crie "à l'aide" comme vous dites, vous n'êtes pas obligé de me répondre, ni de m'humilier d'ailleurs
    et pour finir je ne tente pas une programmation exotique comme vous dites, j'essaie juste de faire des exercices qu'un prof a envoyés à ma classe.

    bon bref laissez tomber, de toute manière vous êtes agressif et impoli, ni bonjour ni rien, vous vous prenez pour qui ?
    allez ciao

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 770
    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 770
    Par défaut
    Citation Envoyé par alex1322 Voir le message
    Mais je n'écris pas n'importe quoi ! il s'agit des consignes de l'exercice, que j'ai indiqué au début de mon post !
    Dans les consignes de l'exercice on vous demande d'allumer red1 et d'éteindre green1
    Ce qui veut dire exécuter une instruction puis l'autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                 setLedState("green1", True)
                 setLedState("red1", False)
    Et non de faire un AND du retour de l'appel de deux fonctions dont on ne vous dit même pas ce qu'elles retournent.

    Donc je persiste, ouvrez un tuto. Python et apprenez les bases...

    Après si vous ne voulez pas apprendre à programmer, ben, ouais, assumez de pas savoir faire les exos qu'on vous propose plutôt que de demander à ce qu'on les fasse à votre place (parce que la note c'est important).

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

  11. #11
    Invité de passage
    Homme Profil pro
    Débutant qui aide
    Inscrit en
    Mai 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Débutant qui aide
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2020
    Messages : 1
    Par défaut merci j'ai réussi grace a toi
    [/QUOTE]322;11502168]Je crois que vous n'avez pas retenu que j'était un lycéen débutant. Merci pour vos réponses mais elles ne sont pas à ma portée[/QUOTE]
    Images attachées Images attachées  

  12. #12
    Membre confirmé
    Homme Profil pro
    Curieux
    Inscrit en
    Avril 2020
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 114
    Par défaut
    Je pense que la même erreur va se produire dès que les conditions vont basculer à l'else .

Discussions similaires

  1. Débutant demandant de l'aide
    Par kravy dans le forum Arduino
    Réponses: 2
    Dernier message: 25/01/2018, 17h06
  2. [PHP-JS] Débutant demande aide liste php
    Par bcbgtn dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2007, 11h24
  3. Débutante demande un peu d'aide svp!
    Par delphS dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 13h25
  4. débutante demande aide
    Par youna dans le forum Langage
    Réponses: 1
    Dernier message: 04/10/2005, 11h30

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