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 :

Python : If avec and => importance de l'ordre des variables ?


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Par défaut Python : If avec and => importance de l'ordre des variables ?
    Bonjour,

    J'ai un souci de compréhension. Si j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    if ("run" and "dataLogger") in mail_recu:
     faire quelque_chose
    if ("stop" and "dataLogger") in mail_recu:
     faire autre chose
    ...
    L’exécution du programme avec les mots clefs présents dans le mail_recu : 'run dataLogger' exécute les 2 'if'. C'est à dire que 'faire quelque_chose' et 'faire autre chose' sont exécutés !?!
    Comme si 'run' et 'stop' valaient '1' ou 'true'.
    Alors que si j'écris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    if ("dataLogger" and "run") in mail_recu:
     faire quelquechose
    if ("dataLogger" and "stop") in mail_recu:
     faire autre chose
    ...
    L’exécution du programme avec les mots clefs présents dans le mail_recu : 'run dataLogger' exécute le 'if' concerné. C'est à dire,seul 'faire quelque_chose' est exécuté !?!

    Egalement valable pour le message 'stop dataLogger' !

    Si quelqu'un a une explication, je suis preneur car pour moi, une fonction 'et', c'est une fonction 'et' et pas 'et/ou' en fonction du placement d'une variable !

    Merci par avance...

    Ludovic

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

    Citation Envoyé par ludovic1975 Voir le message
    Si quelqu'un a une explication, je suis preneur car pour moi, une fonction 'et', c'est une fonction 'et' et pas 'et/ou' en fonction du placement d'une variable !
    Si vous voulez tester que les mots "run" et "dataLogger" sont dans mail_recu, il faut tester via "run" in mail_recu and "dataLogger" in mail_recu i.e. verifier que les deux mots sont bien dans...
    Car en écrivant ("stop" and "dataLogger") in mail_recu vous testez que le résultat de la conjonction "stop" and "dataLogger" est dans mail_recu.... Autrement dit çà retournera vrai si "dataLogger" est dans mail_recu car c'est le résultat du and.

    Pour les explications, il suffit de lire le manuel. Ca dit:
    The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned
    Cela ne correspond peut être pas à votre premières intuitions mais c'est comme çà que Python fonctionne.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Par défaut
    Merci et après explication c'est parfaitement clair !
    Habituellement, je fais bien (x>y) and (z>y) et non pas (x and z) > y !!!
    Bonne journée

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

Discussions similaires

  1. Un flux avec plusieurs fichier Excel dépendant d'une des variables du flux
    Par dev_ggy dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 24/01/2012, 17h16
  2. Importance de l'ordre des champs dans un Group by ?
    Par Noren dans le forum Langage SQL
    Réponses: 1
    Dernier message: 15/12/2007, 13h31
  3. importance de l'ordre des termes d'une addition
    Par naz dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/08/2006, 15h47
  4. Requete sous Access avec AND et OR
    Par paflolo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/02/2006, 10h35

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