Python Language Confronti a catena

Esempio

È possibile confrontare più articoli con più operatori di confronto con il confronto a catena. Per esempio

x > y > z

è solo una breve forma di:

x > y and y > z

Verrà valutato su True solo se entrambi i confronti sono True .

La forma generale è

a OP b OP c OP d ...

Dove OP rappresenta una delle operazioni di confronto multiple che è possibile utilizzare e le lettere rappresentano espressioni valide arbitrarie.

Si noti che 0 != 1 != 0 restituisce True , anche se 0 != 0 è False . A differenza della comune notazione matematica in cui x != y != z significa che x , y e z hanno valori diversi. Il concatenamento == operazioni ha il significato naturale nella maggior parte dei casi, poiché l'uguaglianza è generalmente transitiva.

Stile

Non esiste un limite teorico su quanti articoli e operazioni di confronto si utilizzano a patto di avere una sintassi corretta:

1 > -1 < 2 > 0.5 < 100 != 24

Quanto sopra restituisce True se ogni confronto restituisce True . Tuttavia, l'utilizzo del concatenamento concatenato non è un buon stile. Un buon collegamento sarà "direzionale", non più complicato di

1 > x > -4 > y != 8

Effetti collaterali

Non appena un confronto restituisce False , l'espressione viene valutata immediatamente su False , ignorando tutti i confronti rimanenti.

Si noti che l'espressione exp in a > exp > b sarà valutata solo una volta, mentre nel caso di

a > exp and exp > b

exp sarà calcolato due volte se a > exp è vero.