Skip to content

if-Anweisung in Python (if, elif, else)

Python

Die if-Anweisung (if … elif … else …) WIRD für die bedingte Ausführung in Python verwendet.

  • Grundlagen der if-Anweisung (if, elif, else)
  • Bedingungen mit Vergleichsoperatoren
  • Bedingungen mit Zahlen, Listen etc.
  • Bedingungen mit booleschen Operatoren (and, or, not)
  • Also schreiben Sie bedingte Ausdrücke in mehreren Zeilen

Python bietet auch bedingte Ausdrücke, mit denen SIE Operationen wie die if-Anweisung in einer Zeile schreiben können. Nichts finden Sie im folgenden Artikel.

Grundlagen der if-Anweisung (if, elif, else)

Die Grundform der if-Anweisung lautet wie folgt:

if expression 1:
    Executed when expression 1 is True
elif expression 2:
    Executed when expression 1 is False and expression 2 is True
elif expression 3:
    Executed when expression 1, 2 are False and expression 3 is True
...
else:
    Executed when all expressions are False

elif in Python ist äquivalent zu else if in der Sprache C.

Die Elif- und Else-Klauseln können weggelassen werden, wenn es nur einen bedingten Ausdruck gibt oder wenn es nicht notwendig ist, für False auszuführen.

Bedingungen mit Vergleichsoperatoren

Sie können Bedingungen mit Vergleichsoperatoren angeben.

Die Vergleichsoperatoren in Python lauten wie folgt:

  • x<y
  • x <= y
  • x > y
  • x >= y
  • x == y
  • x != y
  • x ist y
  • x ist nicht y
  • x in y
  • x nicht in y

Zum Beispiel:

def if_test(num):
    if num > 100:
        print('100 < num')
    elif num > 50:
        print('50 < num <= 100')
    elif num > 0:
        print('0 < num <= 50')
    elif num == 0:
        print('num == 0')
    else:
        print('num < 0')

if_test(1000)
# 100 < num

if_test(70)
# 50 < num <= 100

if_test(0)
# num == 0

if_test(-100)
# num < 0

In Python können Sie schreiben wie a < x < b.

def if_test2(num):
    if 50 < num < 100:
        print('50 < num < 100')
    else:
        print('num <= 50 or num >= 100')

if_test2(70)
# 50 < num < 100

if_test2(0)
# num <= 50 or num >= 100

==, != Werden used, um Werte zu vergleichen, und is, is not Werden used, um die Identität von Objekten zu vergleichen.

Wenn beispielsweise die Ganzzahl int und die Gleitkommazahl float erfasst werden und die Werte gleich sind, gibt es == True zurück, aber False, da es sich um unterschiedliche Objekte handelt.

i = 10
print(type(i))
# <class 'int'>

f = 10.0
print(type(f))
# <class 'float'>

print(i == f)
# True

print(i is f)
# False

Durch die Verwendung von in und nicht in ist es möglich, eine Bedingung zu machen, ob eine Liste oder ein String ein bestimmtes Element oder Teilstring enthält.

def if_test_in(s):
    if 'a' in s:
        print('a is in string')
    else:
        print('a is NOT in string')

if_test_in('apple')
# a is in string

if_test_in('melon')
# a is NOT in string

Bedingungen mit Zahlen, Listen etc.

Im bedingten Ausdruck der if-Anweisung can SIE ein Objekt wie eine Zahl oder eine Liste angeben.

if 10:
    print('True')
# True

if [0, 1, 2]:
    print('True')
# True

Die following Objekte werden in Python als False betrachtet.

  • als falsch definierte Konstanten:None and False.
  • Null eines beliebigen numerischen Typs:0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • leere Sequenzen und Sammlungen:'', (), [], {}, set(), range(0)
    Built-in Types — Python 3.8.5 documentation

Alles andere wird als wahr angesehen.

Sie can bool() verwenden, um zu prüfen, ob ein Objekt als True oder False betrachtet WIRD. SIE, dass die Zeichenfolge mit Ausnahme der Buchstaben „“ als wahr betrachtet WIRD, sodass die Zeichenfolge „falsch“ ebenfalls als wahr betrachtet WIRD.

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

Sie können ganz einfach Bedingungen schreiben wie „wenn die Liste leer ist“.

def if_test_list(l):
    if l:
        print('list is NOT empty')
    else:
        print('list is empty')

if_test_list([0, 1, 2])
# list is NOT empty

if_test_list([])
# list is empty

SIE, dass wie im Folgenden Beispiel eine Zeichenfolge, sterben Nicht sterben leere Zeichenfolge „“ IST, als wahr betrachtet WIRD, sodass die Zeichenfolge „falsch“ ebenfalls als wahr betrachtet WIRD. Verwenden Sie strtobool() im Modul distutils.util, um bestimmte Zeichenfolgen wie „True“ und „False“ in 1, 0 umzuwandeln. Siehe folgenden Artikel.

Bedingungen mit booleschen Operatoren (and, or, not)

Sie können mehrere Bedingungen kombinieren, indem Sie die booleschen Operatoren (and, or, not) verwenden.

def if_test_and_not(num):
    if num >= 0 and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_not(5)
# num is positive odd

if_test_and_not(10)
# num is NOT positive odd

if_test_and_not(-10)
# num is NOT positive odd

Bei der Kurzschlussauswertung liefern x und y und x oder y entweder x oder y, nicht True oder False. Solange es im bedingten Ausdruck der if-Anweisung verwendet WIRD, WIRD sein Wert wahlweise als True oder False ausgewertet, sodass SIE sich darüber keine Sorgen machen müssen.

Es ist möglich, und oder mehrfach zu verwenden.

def if_test_and_not_or(num):
    if num >= 0 and not num % 2 == 0 or num == -10:
        print('num is positive odd or -10')
    else:
        print('num is NOT positive odd or -10')

if_test_and_not_or(5)
# num is positive odd or -10

if_test_and_not_or(10)
# num is NOT positive odd or -10

if_test_and_not_or(-10)
# num is positive odd or -10

Also schreiben Sie bedingte Ausdrücke in mehreren Zeilen

Wenn SIE mehrere Bedingungsausdrücke mit und oder oder verwenden, kann die Zeile zu lang werden.

Indem Sie einen umgekehrten Schrägstrich verwenden oder ihn in Klammern () einschließen, können Sie einen bedingten Ausdruck über mehrere Zeilen schreiben.

def if_test_and_backslash(num):
    if num >= 0 
       and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_backslash(5)
# num is positive odd

def if_test_and_brackets(num):
    if (num >= 0
        and not num % 2 == 0):
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_brackets(5)
# num is positive odd

Dies ist nicht auf if-Anweisungen beschränkt und kann überall im Python-Code verwendet werden. Nichts finden Sie im folgenden Artikel.