Angekettet Vergleich Nummernkreis in Python
Ich habe die folgende Funktion:
def InRange(number):
return 5 <= number >= 1
Möchte ich dieses sagen false, wenn die Zahl nicht innerhalb des Bereichs von 1 bis 5 mit einer Kette Vergleich, aber kann nicht scheinen, um dieses Recht zu bekommen.
Irgendwelche Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du willst es so:
Beachten Sie, dass Sie auch tun könnte:
Verwenden:
Vom docs:
Ihre (falsche)Ausdruck ist eigentlich äquivalent zu:
So, es wird
True
für eine beliebige Zahl zwischen 1 bis unendlich:True
für eine beliebige Anzahl von 5 unendlich...Alternativ können Sie das tun (es schien angemessen, basierend auf der Funktion, name):
Für große zahlen, die Sie verwenden sollten:
xrange
.10**6 in xrange(1, 10000000)
dauert etwa 40ms, während1 <= 10**6 <10000000
dauert nur 240ns. Also, ich würde immer lieber mathematischen Vergleichsoperatoren.10**6 in range(1, 10000000)
dauerte nur1.41us
.