Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Python 3 Grundkurs

Schleifen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Python unterstützt ebenfalls die Anwendung von Schleifen innerhalb eines Programms. Hierfür stehen unterschiedliche Schlüsselwörter für die Erstellung verschiedener Konstrukte zur Verfügung.

Transkript

In dieser Lektion werden wir Schleifen behandeln. Bei einer Schleife wird ein Anweisungsblock wiederkehrend durchlaufen. Schauen wir uns also mal an, wie wir in unserem EDV-Programm so was nutzen können. Ich werde jetzt mal IDLE wieder starten, und dann über File Recent Files auf main.py wieder gehen, und, ja, es ist so, dass unser Programm einmal durchlaufen wird, und man einmal sein Gewicht und seine Körpergröße angeben kann, und dann am Ende einen BMI-Wert erhält. Das werden wir jetzt mal ändern, und zwar werden wir jetzt dafür sorgen, dass der Benutzer sagen wir zehnmal seinen BMI auswerten kann. Hierfür werden wir das Schlüsselwort FOR einsetzen. Und zwar werden wir das wie folgt machen: Die Größe, die ändert sich ja nicht, die werde ich jetzt hier vorziehen, und dann - das schreibe ich mir jetzt hier drunter - So, hier - und alles, was hier passiert, das soll öfter gemacht werden, also werde ich hier oben mal ein for einsetzen, und - dann brauche ich eine Zählervariable, ich wähle da mal i, das ist auch so üblich, dass solche Zähler oder solche Durchlaufvariablen nur aus einem einzigen Buchstaben bestehen, und dann schreibe ich ein in Ja, und jetzt brauche ich einen Bereich, von wo bis wo durchlaufen werden soll. Das kann man über eine spezielle Built-In Funktion erreichen, die sich range nennt. Also, ich nehme jetzt range, und dann sage ich, alle Zahlen von eins bis elf sollen durchlaufen werden. Aber das täuscht, denn eins bis elf werden an der Stelle nicht durchlaufen, sondern - zeigt der zweite Parameter die Stelle an, die nicht mehr durchlaufen werden soll, also wir würden jetzt an dieser Stelle eins bis zehn durchlaufen. So, alles was hier drin ist, muss ich jetzt eins einrücken, so -, damit Python auch weiß, dass dieser Bereich wiederholt durchlaufen werden soll. So. print('Ende des Programmes') lasse ich außerhalb dieses Anweisungsblocks, denn, ja, das soll ja nur ganz am Ende mal angezeigt werden. So, im Prinzip sind wir damit fertig, ich werde jetzt mal das Ganze ausführen. Meine Körpergröße - so, und jetzt werde ich nach meinem Gewicht gefragt, und dann erhalte ich hier meinen BMI-Wert, und dann springt das Programm wieder hinauf, hier oben hin, und fragt mich erneut nach meinem Gewicht. Jetzt kann ich wieder ein anderes Gewicht eingeben, Übergewicht, wieder Übergewicht, hier wieder nicht - und so weiter. So, solange bis das Ende erreicht wurde. Das unser Programm jetzt zehnmal durchlaufen wird, ist nun nicht gerade sehr nützlich. Viel besser wäre es doch, wenn wir dafür sorgen könnten, dass unser Programm so lange durchlaufen wird, bis der Benutzer ein Normalgewicht hat. Um dies zu verwirklichen, bietet sich die while-Schleife an, denn die durchläuft einen Anweisungsblock solange ein bestimmter Ausdruck wahr ist. Das heißt, ich würde jetzt hier an dieser Stelle statt for i in schreibe ich while, und das ist jetzt auch nicht eine Iterierung durch irgendwelche Werte, sondern ich brauche jetzt hier eine Bedingung, und welche Bedingung ist es? Es ist die Bedingung des Übergewichts oder des Untergewichts. In diesen beiden Fällen muss der hier rein laufen, deswegen werde ich erstmal das Übergewicht reinschreiben, so - jetzt würde solange ein Übergewicht da ist, immer hier reingelaufen werden. Tja, und wie machen wir jetzt das mit dem Untergewicht? Ich habe jetzt noch das, und das muss jetzt hier irgendwie mit rein, und zwar füge ich das mal hier vorne an, und dann verbinde ich die beiden, und zwar gezielt für sogenannte logische Operatoren, ich kann nämlich sagen, wenn das eine oder das andere zutrifft, über den englischen Begriff OR, dann soll hier reingelaufen werden. Alternativ gäbe es dazu auch das end, was bedeuten würde, wenn der BMI-Wert <18,5 und =25 wäre, gut, das würde ja nie vorkommen können, und deswegen würde auch niemals hier reingelaufen werden, aber wir haben ja hier an dieser Stelle ein or zu setzen. Also - while bmi<18,5 or bmi25: dann springen wir hier rein - das probieren wir jetzt mal aus. So - und jetzt haben wir aber an eine Sache wahrscheinlich nicht gedacht, das zeige ich Ihnen mal, Körpergröße - so, und jetzt meckert Python mit mir, weil er sagt, dass bmi noch nicht definiert wurde. Da hat er auch vollkommen Recht, Denn ich kann bmi in so einem Vergleich nur reinsetzen, wenn bereits bmi definiert wurde. Deswegen muss ich hier oben reinschreiben, bmi=0 Zum Beispiel, wenn bmi gleich Null ist, dann kann ich sicher sein, dass es wenigstens einmal durchlaufen wird. Und, ja, als Initialwert eignet sich Null eigentlich ganz gut. Also starte ich das Programm nochmal neu. Und jetzt hab ich hier einen, ja, ich sage mal, viel zu hohen Wert, Übergewicht, also muss ich nochmal ran, muss hier ein anderes Gewicht eingeben, wenn ich jetzt einen viel zu kleinen Wert nehme, ja, dann muss ich wieder etwas tun, und dann 7,5, das könnte passen, und dann habe ich mein Normalgewicht, und das Programm wird beendet. Wenn man sich unsere Anwendung hier etwas genauer anschaut, dann kann man auf den Gedanken kommen, dass sie nicht ganz anwenderfreundlich ist. Was ist, wenn der Benutzer niemals abnimmt, oder niemals zunimmt, und niemals in ein Normalgewicht reinkommt, dann wird das Programm ja niemals beendet. Das werden wir jetzt mal ändern, indem der Benutzer ganz von sich aus die Anwendung beenden kann. Ich werde also an dieser Stelle die Bedingung herausnehmen und sagen: Nee, ich durchlaufe es immer wieder, so lange, hier in dieser Zeichenkette, weil es ist ja eine Zeichenkette, die hier übergeben wird, und, ja, wenn der Benutzer gar nichts eintippt, sondern einfach nur die Entertaste antippt, dann soll das Programm abbrechen. Wie macht man das? Und zwar überprüfe ich erstmal if not und dann gibt es eine Built-In Funktion, die nennt sich len. len überprüft eine Zeichenkette nach ihrer Länge. So, und wenn die nicht größer als Null ist, und hiermit haben Sie einen weiteren logischen Operator kennengelernt, dann soll das Ganze abgebrochen werden, und zum Abbrechen gibt's das Schlüsselwort break. Ja, ein weiteres Schlüsselwort, ein sehr wichtiges, das Sie hiermit gelernt haben, ist break, damit wird also der Durchlauf der while-Schleife durchbrochen, das Gleiche würde auch mit einer Vorschleife passieren, und das probieren wir jetzt mal aus. So, jetzt wird das immer weitergehen, und irgendwann habe ich keine Lust mehr, und geb einfach nur Enter ein, und das Programm ist zu Ende. Das unser Programm jetzt hier nach der Anzahl der eingegebenen Zeichen abfragt, funktioniert an sich schon ganz gut. Ich werde jetzt noch was anderes einbauen, denn Python bietet noch eine Besonderheit an, die an dieser Stelle sehr nützlich ist. Denn bei Python ist es so, dass nicht nur logische Operatoren abgefragt werden können, ob sie logisch gesehen ein true oder ein false ergeben, sondern Zahlen kann man auch abfragen. Denn Zahlen, die den Wert Null haben, haben bei einer logischen Abfrage den Wert false. Alle Werte von Zahlen, die nicht Null sind, sind dann true. Also kann ich an dieser Stelle sagen: Wenn die Länge des Gewichtes - und hier ergibt sich ja dann irgendeine Zahl - wenn die Null ist, dann ist das hier, dieser Ausdruck hier, dann ein false. Und bei Null ist das ein false, und wenn nicht Null, also bei true, soll dann rausgesprungen werden. So, das probieren wir jetzt mal aus, und zwar Run Module Und jetzt gebe ich hier wieder den Namen ein - Und - das funktioniert auch. Und noch schlichter geht es auch, denn ich kann jetzt Folgendes machen: Ich kann auch die Zeichenkette selbst abfragen, wenn ich jetzt nämlich sowas mache, if not gewicht, dann ist es so, dass ja auch die Zeichenkette gibt ein true zurück, wenn sie Zeichen enthält, und wenn sie keine Zeichen enthält, also quasi leer ist, dass sie dann ein false ergibt. Also bei not false wäre es dann true, und dann springt er hier rein, und das Durchlaufen wird abgebrochen. Auch das werde ich mal ausprobieren. So, einmal endgültiger Wert, und dann nichts, und das Programm wird beendet. Mit Hilfe dieser Break-Anweisung haben wir in unserem Programm die Schleifendurchläufe komplett abgebrochen. Anstatt des Schlüsselwortes break gibt es aber noch ein anderes Schlüsselwort, das sich continue nennt. Auch mit continue wird der aktuelle Schleifendurchlauf verlassen, jedoch sorgt continue dafür, dass der nächste Durchlauf durch die Schleife eingeleitet wird. In unserem BMI-Programm könnten wir continue verwenden, um den Benutzer bei einer leeren Gewichtsangabe immer wieder aufzufordern, erneut eine Eingabe zu tätigen. Also, ich werd jetzt mal Folgendes machen, Ich sag hier: if not gewicht dann: continue So, und das würde dann auch funktionieren, nur halt nicht so, wie wir es eigentlich wollen. denn wenn ich jetzt nichts eingebe, wird er immer wieder hineinspringen. So, deswegen werde ich hier wieder break reinsetzen, für die nachfolgenden Programme, und speichere das mal ab.

Python 3 Grundkurs

Lernen Sie die Entwicklungsumgebung sowie die grundlegenden Konzepte von Python kennen und schreiben Sie schon bald eigene Anwendungen.

4 Std. 33 min (49 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:26.03.2015

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!