659 Stimmen

Bestimmen, ob eine ganze Zahl zwischen zwei anderen ganzen Zahlen liegt

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 )?

1563voto

Paolo Moretti Punkte 50959
if 10000 <= number <= 30000:
    pass

Einzelheiten finden Sie in der 文書 .

135voto

Bohdan Punkte 14977
>>> r = range(1, 4)
>>> 1 in r
True
>>> 2 in r
True
>>> 3 in r
True
>>> 4 in r
False
>>> 5 in r
False
>>> 0 in r
False

72voto

Silas Ray Punkte 25276

使用する if number >= 10000 and number <= 30000: . Alternativ gibt es in Python eine Kurzschrift für diese Art von Dingen, if 10000 <= number <= 30000: .

40voto

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 .

29voto

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X