2013-05-07 10 views
5

Desidero eseguire confronti multipli per una condizione logica in python ma non sono sicuro della direzione corretta per and e or. Ho 2 dichiarazioni.Confronti logici multipli su una singola riga per un'istruzione if

Dichiarazione 1:

#if PAB is more than BAC and either PAB is less than PAC or PAC is more than BAC 
if PAB > BAC and PAB< PAC or PAB > BAC and PAC>BAC: 

Dichiarazione 2:

#if PAB is more than BAC and PAC is less than PAB or if PAB is less than BAC and PAC is less than BAC 
if PAB >BAC and PAC<PAB or PAB<BAC and PAC<BAC 

è o-zione dei due ands il modo corretto di andare su di esso?

Grazie.

+5

'PAB> BAC e PAB mgilson

+0

'PAB',' PAC' e 'BAC' sono angoli di 3 triangoli con vertici comuni. 'PAB> BAC e PAB

+0

@markmcmurray: ho interpretato erroneamente come "a Eric

risposta

9

Guardando dichiarazione 1, Sto assumendo vuoi dire:

if (PAB > BAC and PAB< PAC) or (PAB > BAC and PAC>BAC): 

In questo caso, probabilmente sarei scrivo in questo modo (usando confronti concatenati, documenti: python2, python3):

if (BAC < PAB < PAC) or min(PAB,PAC)>BAC: 

È possibile utilizzare una forma analoga per la dichiarazione 2.

detto questo, non posso fai in modo che i tuoi commenti nel codice della domanda corrispondano alla mia interpretazione dei tuoi condizionali, quindi è plausibile che non capisco il tuo requisito.

Problemi correlati