web-dev-qa-db-fra.com

PyCharm: "Simplifier la comparaison chaînée"

J'ai une valeur entière x, et je dois vérifier si elle est comprise entre les valeurs start et end, aussi j'écris les instructions suivantes:

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

Cette déclaration est soulignée et l'info-bulle me dit que je dois

simplifier la comparaison chaînée

Autant que je sache, cette comparaison est à peu près aussi simple qu’ils viennent. Qu'est-ce que j'ai manqué ici?

212
Brynn McCullagh

Dans Python, vous pouvez opérations de comparaison "en chaîne" , ce qui signifie simplement qu'elles sont "et" éditées ensemble. Dans votre cas, ce serait comme ça:

if start <= x <= end:

Référence: https://docs.python.org/3/reference/expressions.html#comparisons

375
John Zwinck

Il peut être réécrit comme:

start <= x <= end:

Ou:

r = range(start, end + 1) # (!) if integers
if x in r:
    ....
9
Maroun