Schleifen

Heute Erkläre ich wie Schleifen in Python funktionieren

10 mall Hallo Welt bitte !

Ganz simpel gesagt können wir mit Schleifen Programmteile beliebig oft wiederholen. Sollten wir zum Beispiel (warum auch immer) 10x Hallo Welt in der Konsole ausgeben wollen, können wir entweder 10 print Anweisungen verwenden oder einfach folgendes schreiben:

i = 0
while i < 10:
	print("Hallo Welt !")
	i = i + 1

Nachdem wir die Variable i definiert und auf 0 gesetzt haben, benutzen wir das KeyWord while und geben genauso wie bei den if Bedingungen einen Vergleich an. Wir fragen hier aber nicht nach einen festen Wert, sondern nur ob i allgemein kleiner als 10 ist. Sollte das der Fall sein, wird der Block in der Schleife ausgeführt. Im Block selbst geben wir “Hallo Welt” aus und (sehr wichtig) rechnen i plus 1. Sollten wir dies nicht tun bleibt i immer 0 also kleiner als 10 und die Schleife läuft ewig weiter.

Die for schleife und die range Funktion

Oben haben wir die While Schleife verwendet, neben dieser gibt es aber noch eine Weitere. Wollen wir eine Aktion X mal oft wiederholen, so wie im ersten Beispiel, können wir die for Schleife verwenden.

Um diese zu verwenden brauchen wir aber ein grobes Verständnis der range Funktion. Die range Funktion erwartet zwei Zahlen und gibt uns ein Range Objekt zurück. Was ein Objekt genau ist, interessiert uns aber erstmal nicht. Das Range Objekt ist quasi ein Zahlenbereich von x bis y. Also anstatt unserer Hilfsvariable i hoch zu zählen benutzen wir die range Funktion mit unserem Zahlenbereich.

for i in range(0, 10):
	print("Hallo Welt !")

Diese Schleife macht exakt das Gleiche wie unsere Schleife zuvor. i ist hierbei immer der aktuelle Durchlauf. Also beim ersten Durchlauf 0, beim zweiten Durchlauf 1, beim dritten Durchlauf 2 und so weiter … Man beachte hierbei, dass range(0, 10) uns den Zahlenbereich von 0 bis 9 zurückgibt. Unsere Schleife läuft also 10 mal, nur wird nie der Durchlauf 10 erreicht, bzw. wird i niemals 10 sein.

break und continue

Es kann mall vorkommen das wir aus einer Schleife springen wollen und diese abrechen. Dafür verwenden wir das break statement.


for i in range(0,10):
	if i == 5:
		break
	print("Hallo Welt")

In diesem Beispiel wird nur 5 mal, statt 10 mal “Hallo Welt” ausgegeben. Da sobald i gleich 5 ist wir aus der Schleife springen.


for i in range(0,10):
	print("Hallo Welt")
	if i % 2 == 0:
		continue
	print(i)

In diesem Beispiel geben wir 10 mal Hallo Welt aus. Sollte i nicht durch 2 glatt geteilt werden können, geben wir i nochmal aus. Wenn i durch 2 glatt teilbar ist springen wir wieder zum Anfang der Schleife und überspringen somit das i ausgeben wird.

Bedeutung vom %

Eventuell bist du ein wenig irritiert vom % Zeichen. Dies ist ein ganz normaler Rechen-Operator wie + oder *. Das % steht für Modulo und bedeutet so viel wie geteilt rechnen auf Grundschulniveau. Modulo gibt uns also den Rest aus der nicht geteilt werden kann, zumindest hieß es so in der Grundschule. 3 Modulo(%) 2 ergibt also 1. 4 Modulo(%) 2 ist 0, da kein Rest übrig bleibt.

Der Datentyp boolean.

Sowohl bei den if, als auch bei den Schleifen Anweisungen haben wir stets eine Variable angegeben. Aber Moment mal, wir haben doch stets irgendwelche Gleichungen aufgestellt wie kann das sein? Mehrere Operatoren in Python geben einen booleschen Wert zurück, statt einer Zahl oder ähnliches.

print(42==42)

So gibt dieses print Funktion einfach ein True aus. Wir können aber auch einer Variable True aber auch False direkt zuweisen

boolFalse = False # false wert
boolTrue  = True  # true wert

interessant wird der Boolean wenn wir in in andere Datentypen casten

bool(1) # True
bool(0) # False
bool("Hallo Welt") # True
bool("") #False

Dieses casten passiert bei den Schleifen und bei den if Abfragen implizit. Daher können wir eine endlos Schleife so schreiben:

while 1:
	print("Hey")

Solltest du übrigens im Terminal unter Unix Systemen bzw der CMD unter Windows arbeiten kannst du mit STR + C dein Programm abrechen.

Boolean invertieren

Wenn wir überprüfen wollen ob etwas nicht der Fall ist können wir den boolean auch invertieren. Das machen wir indem wir ein not vor dem boolean schreiben.

b = False

if not b:
	print("in dem if drin !")

Eigentlich würde der Code nicht ausgeführt werden, da wir aber invertieren kommen wir doch rein. Das funktioniert natürlich auch mit den bereits bekannten Vergleichen.

zahl = 42

if not zahl == 43:
	print("in dem if drin !")

Und und oder

Es kommt durchaus mall vor das wir mehrere Bedingungen zusammen hängen wollen. Zum Beispiel das wir prüfen wollen ob die Zahl in einem gewissen Bereich ist.

for i in range(0,100):
	if i > 50 and i < 60:
		print(i)

Die Schleife selbst ist relativ trivial, sie zähl von 0 bis 100. Das Neue ist in dem Code im if Statement. Wenn i größer (>) als 50 UND kleiner (<) als 60 ist, geben wir i aus.

Und Überraschung, Überraschung. Das Gleiche gibt es auch noch mit oder hier ist das Keyword nur eben or. Ein Beispiel !

i = 1
if i == 1 or i == 42:
	print("i ist 1 oder 42 !")

i = 42
if i == 1 or i == 42:
	print("i ist 1 oder 42 !")

In beiden Fällen haben wir die gleiche Abfrage und beide sind Wahr obwohl wir i im laufe des Programmes überschreiben.

Operatoren zum vergleichen

Zu ende nochmal eine Aufführung verschiedener Operatoren die uns alle samt eine booleschen Wert zurückgeben

print(True == True) # True
print(not True == True) # False
print(True == True and True == False) # False
print(True == True or True == False)  # True
print(42 > 1)  # True
print(42 < 1)  # False
print(42 >= 1) # True
print("Hallo Welt" < "Hallo") # False
print("Hallo Welt" > "Hallo") # True
print("Hallo" == "Hallo")    # True

Zu gutter letzt !

Beim letzten mall haben wir mit if Abfragen unseren eigenen kleinen Python Rechner gebaut. Nun machen wir diesen nochmal ein wenig schöner mit einer Schleife.

ergebnis = 0
nochmal = True

while nochmal:
	zahl1 = int(input("Die erste Zahl bitte "))
	zahl2 = int(input("Die zweite Zahl bitte "))

	operator = input("Wie sollen die Zahlen verrechnet werden ? addieren (+), multiplizieren (*), subtrahieren (-), dividieren (/), (E) zum abrechen")

	if operator == "+":
		ergebnis = zahl1 + zahl2
	elif operator == "-":
		ergebnis = zahl1 - zahl2
	elif operator == "/":
		ergebnis = zahl1 / zahl2
	elif operator == "*":
		ergebnis = zahl1 * zahl2
	elif operator == "E":
		nochmal = False
	else:
		print("Die Eingabe war falsch, bitte nochmal !")
	print(ergebnis)
print("Bis zum nästen mal")

Wir fügen eine nochmal Variabel hinzu und geben ihr den Wert True. Gibt der Benutzer statt eines Rechen Operator ein ‘E’ ein setzten wir nochmal auf False. Was dazu führt das wir die Schleife verlassen und das Programm beendet wird.

So das wars dann auch wieder zu schleifen. Ich hoffe es gefiel und bis zum nächsten mal =).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert