Wie kann ich feststellen, ob eine bestimmte ganze Zahl zwischen zwei anderen ganzen Zahlen liegt (z. B. größer/gleich 10000
und weniger als/gleich 30000
)?
Antworten
Zu viele Anzeigen?if 10000 <= number <= 30000:
pass
Einzelheiten finden Sie in der 文書 .
Bohdan
Punkte
14977
Silas Ray
Punkte
25276
Carl Ekerot
Punkte
1978
Um zu prüfen, ob die Zahl im Bereich 10000 - 30000 liegt, verwenden Sie den Python-Intervallvergleich:
if 10000 <= number <= 30000:
print ("you have to pay 5% taxes")
Diese Python-Funktion wird näher beschrieben in der Python-Dokumentation .
a_bridges
Punkte
366
Es gibt zwei Möglichkeiten um drei ganze Zahlen zu vergleichen und zu prüfen, ob b liegt zwischen a y c :
if a < b < c:
pass
und
if a < b and b < c:
pass
Die erste scheint besser lesbar zu sein, aber die der zweite läuft schneller .
Vergleichen wir mit dis.dis :
>>> dis.dis('a < b and b < c')
1 0 LOAD_NAME 0 (a)
2 LOAD_NAME 1 (b)
4 COMPARE_OP 0 (<)
6 JUMP_IF_FALSE_OR_POP 14
8 LOAD_NAME 1 (b)
10 LOAD_NAME 2 (c)
12 COMPARE_OP 0 (<)
>> 14 RETURN_VALUE
>>> dis.dis('a < b < c')
1 0 LOAD_NAME 0 (a)
2 LOAD_NAME 1 (b)
4 DUP_TOP
6 ROT_THREE
8 COMPARE_OP 0 (<)
10 JUMP_IF_FALSE_OR_POP 18
12 LOAD_NAME 2 (c)
14 COMPARE_OP 0 (<)
16 RETURN_VALUE
>> 18 ROT_TWO
20 POP_TOP
22 RETURN_VALUE
>>>
und mit timeit :
~$ python3 -m timeit "1 < 2 and 2 < 3"
10000000 loops, best of 3: 0.0366 usec per loop
~$ python3 -m timeit "1 < 2 < 3"
10000000 loops, best of 3: 0.0396 usec per loop
Sie können auch Bereich wie bereits vorgeschlagen, allerdings ist es viel langsamer.
- See previous answers
- Weitere Antworten anzeigen