====== 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