if: Standard-Konstruktion für einfache Verzweigungen
if ( expr ):
statements
if–else: Verzweigung und Alternative
if ( expr ):
statements_1
else:
statements_2
Typ bool relativ neu in Python. In älteren Versionen einfach int verwendet:
Häufiger Fehler in C/C++:
if ( a = b ) ... statt
if ( a == b ) ...
In Python nicht möglich, Syntax–Fehler !
if–elif–elif–...–else: Verzweigung und mehrere Alternativen
if ( expr1 ):
statements_1
elif ( expr2 ):
statements_2
elif ( expr3 ):
statements_3
...
else:
statements_n
if ( a < b ): a = b # einfaches if, auch in 1 Zeile ... if ( a < b ): # if -- else a = b else: b = a ... if ( a < b ): # if -- else if -- else a = b elif ( a > b ): b = a elif ( a == b ): ... else: # wenn alles andre fehlschlaegt .. print ("What else could I test ?")
if-else in einer Zeile
Sehr praktisch ist Kurzform wenn es nur 2 Alternativen gibt:
maxv = b if a < b else a
Schönes Feature in Python ist dass auch für Listen einfache if–Abfrage möglich ist:
primes = [ 2, 3, 5, 7, 11, 13, 17, 19 ]
testnum = 9
if ( testnum in primes ):
print (testnum + " ist prime")
...
So nicht möglich in C++, JAVA, ...
while–loops:
while ( expr ):
statements
Zeilen
statements werden ausgeführt solange Ausdruck
expr wahr ist (
True)
# klassische Zaehlschleife i=0 while ( i<10): print (i) i += 1 #... # Summiere Quadratzahlen 1**2..10**2 sum=0; i=0 while ( i<10): i += 1 sum += i*i #... # Einlesen n=0 while ( True ): # Endlosschleife s=f.readline() if ( len(s) == 0 ): break n += 1 # print ("Lines read ", n)
while Schleifen universell verwendbar, insbesondere bei nicht absehbarer Abbruchbedingung, Ende als Reaktion auf z.B. bestimmtes Ereignis, End-of-file.
for–loops:
sind Alternative, insbesondere für Zählschleifen oder wenn über Elemente einer
Python Sequenz iteriert werden soll.
S = [1,4,5,9,56] for i in S: print (i) # s = "Donaudampfschiffahrtsgesellschaft" ca = 0 for c in s: # iteriere ueber String if (c=='a'): ca += 1 # count 'a' # print (ca, " 'a' in ", s) ## Note: bad python programming style, better use string function ## to achive the same: # s.count('a') a=[[0]*3]*4 # 4x3 Matrix for i in range(4): # Verschachtelte Schleifen for j in range(3): a[i][j] = i*j # Fuellen von Matrix #
statements
Blocks von
for
bzw.
while Schleifen
kann man mit
while ( True ): ... if ( ... ): continue # Springt ans Ende der Schleife if ( ... ): break; # Springt aus der Schleife raus ...
# s = "Donaudampfschiffahrtsgesellschaft" for c in s: # iteriere ueber String if (c=='x'): print ('x found in ', s) break else: print ('x not found in ', s)