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 :

Condition "if" sur plusieurs lignes


Sujet :

Python

  1. #1
    Membre confirmé Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Par défaut Condition "if" sur plusieurs lignes
    Salut,
    J'aurais une question (qui pourrait paraître bête pour certain): je voudrais savoir comment fait-on une condition (avec plusieurs test) sur plusieurs ligne.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (liste[c+5]=='red' and liste[c+6]=='red' and liste[c+7]=='red' and liste[c+8]=='red'[B]) or (liste[c+9]=='red' and liste[c+10]=='red' and liste[c+11]=='red' and liste[c+12]=='red') :
    Ceci est un exemple (dans mon cas c'est encore plus long).
    Donc j'aimerais mettre sa sur plusieurs ligne mais seulement avec un condition if.
    Merci d'avance et bonne journée.

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Salut,

    pour écrire sur plusieurs lignes en python, soit tu utilises des parentheses:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (condtion1 and
        condition2 and
        condition3):
        print "ok"
    soit tu utilises le backslashe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if condition1 and \
    condition2 or \
    condition3:
        print "ok"
    Tu es libres d'indenter les nouvelles lignes comme tu veux.

    Bon python.

  3. #3
    Membre éclairé Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Par défaut
    Salut,

    Avec un anti-slash à la fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> if (1==1) \
    ... and (2==2):
    ...     print "coucou"
    Je viens juste de lire le mail d'avant, je ne savais pas avec les parenthèses.

  4. #4
    Membre confirmé Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Par défaut
    , c'est exactement ce qu'il me fallait.

    PS: J'ai déjà essayé avec les parenthèse cela ne fonctionnait pas.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (liste[c+5]=='red' and liste[c+6]=='red' and liste[c+7]=='red' and liste[c+8]=='red'[b])\
       or (liste[c+9]=='red' and liste[c+10]=='red' and liste[c+11]=='red' and liste[c+12]=='red') :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ''.join(liste[c+5:c+9])==4*'red' or ''.join(liste[c+9:c+13])==4*'red':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    n = 4                                     
    if n*'red' in [ ''.join(liste[c+i:c+i+n] for i in (5,5+n) ]

  6. #6
    Membre émérite
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Par défaut
    Autre alternative, créer une fonction pour ce test. Si cette fonction est bien nommé, elle rendra le code plus compréhensible.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 13/12/2011, 17h41
  2. Test d'une condition sur plusieurs lignes
    Par pichto dans le forum Langage SQL
    Réponses: 9
    Dernier message: 23/05/2007, 09h19

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