====== LU09.A02 - Inhalte in Funktionen auslagern ====== ===== Akzeptieren Sie das Github-Classroom-Assignment ===== Akzeptieren Sie das Github-Assignment ''LU09.A02 - Inhalte in Funktionen auslagern'' unter dem Link in Moodle und klonen Sie das Projekt in Ihre IDE. ===== Aufgaben ===== ==== 0. Programm ausführen ==== Führen Sie das Programm ''main.py'' aus und machen Sie sich mit den Funktionen vertraut. Führen Sie auch die Testfälle main_test.py aus. Diese müssen alle auf ''PASSED'' stehen. ============================= test session starts ============================== collecting ... collected 4 items main_test.py::test_menue PASSED [ 25%] main_test.py::test_fibonacci PASSED [ 50%] main_test.py::test_einmaleins PASSED [ 75%] main_test.py::test_even_odd PASSED [100%] ============================== 4 passed in 0.01s =============================== ==== 1. Menüauswahl in Funktionen auslagern ==== Wir haben uns vorgenommen, dass wir Duplikate im Code vermeiden möchten. Im Programm ''talk_to_user'' listen wir dem User an zwei Stellen im Code seine Auswahlmöglichkeiten auf: # Show Menue print() # Newline print('==============================================') print('Was möchten Sie mit dieser Applikation machen?') print('Wählen Sie \'f\' für Fibonacci-Reihe ausgeben') print('Wählen Sie \'e\' für Kleines Einmaleins') print('Wählen Sie \'g\' für Berechnung Gerade / Ungerade') print('Wählen Sie \'x\' um das Programm zu beenden!') Wir möchten diesen Programmteil nun in eine externe Methode packen. Wir arbeiten uns also durch die 3 Schritte durch: - Funktionsblock definieren - docstring erstellen - Logik implementieren Ihre Änderung darf das Resultat der Tests nicht verändern, es müssen immer noch alle Tests auf ''PASSED'' stehen. ============================= test session starts ============================== collecting ... collected 4 items main_test.py::test_menue PASSED [ 25%] main_test.py::test_fibonacci PASSED [ 50%] main_test.py::test_einmaleins PASSED [ 75%] main_test.py::test_even_odd PASSED [100%] ============================== 4 passed in 0.01s =============================== Setzen Sie dies im Code nun um. Erstellen Sie einen **Commit**, wenn Sie die Lösung implementiert haben. Eine mögliche Lösung finden Sie hier: [[https://it.bzz.ch/wikiV2/modul/m319python/learningunits/lu09/loesungen/funktionen#menueauswahl_in_methode_auslagern|Menüauswahl in Funktion auslagern]] ==== 2. Unterprogramme auslagern ==== Um die Übersichtlichkeit des Codes zu erhöhen, lagern wir die **Unterprogramme (Fibonacci, Einmaleins und Gerade/Ungerade) in eigene Funktionen** aus. Um diese Unterprogramme nun in eine externe Methoden zu packen, arbeiten uns für jede Methode durch die 3 Schritte durch: - Funktionsblock definieren - docstring erstellen - Logik implementieren Ihre Änderung darf das Resultat der Tests nicht verändern, es müssen immer noch alle Tests auf ''PASSED'' stehen. ============================= test session starts ============================== collecting ... collected 4 items main_test.py::test_menue PASSED [ 25%] main_test.py::test_fibonacci PASSED [ 50%] main_test.py::test_einmaleins PASSED [ 75%] main_test.py::test_even_odd PASSED [100%] ============================== 4 passed in 0.01s =============================== Setzen Sie dies im Code nun um. Erstellen Sie einen **Commit**, wenn Sie die Lösung implementiert haben. Eine mögliche Lösung finden Sie hier: [[https://it.bzz.ch/wikiV2/modul/m319python/learningunits/lu09/loesungen/funktionen#unterprogramme_auslagern|Unterprogramme auslagern]] ---- {{tag>M319-F3G M319-F3F M319-F3E M319-F1F M319-F1E M319-F2G M319-F2F M319-F2E}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi