Simplifique la comparación encadenada

Resuelto Brynn McCullagh asked hace 10 años • 2 respuestas

Tengo un valor entero xy necesito verificar si está entre los valores a starty end, así que escribo las siguientes declaraciones:

if x >= start and x <= end:
    # do stuff

Esta declaración se subraya y la información sobre herramientas me dice que debo

simplificar la comparación encadenada

Hasta donde puedo decir, esa comparación es tan simple como parece. ¿Qué me he perdido aquí?

Brynn McCullagh avatar Oct 22 '14 15:10 Brynn McCullagh
Aceptado

En Python puedes "encadenar" operaciones de comparación , lo que simplemente significa que están "y" juntas. En tu caso sería así:

if start <= x <= end:

Referencia: https://docs.python.org/3/reference/expressions.html#comparisons

John Zwinck avatar Oct 22 '2014 08:10 John Zwinck

Se puede reescribir como:

start <= x <= end:

O:

r = range(start, end + 1) # (!) if integers
if x in r:
    ....
Maroun avatar Oct 22 '2014 08:10 Maroun