no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


de:modul:m319:learningunits:lu09:loesungen:funktionen [2025/06/23 07:45] (aktuell) – ↷ Seite von modul:m319:learningunits:lu09:loesungen:funktionen nach de:modul:m319:learningunits:lu09:loesungen:funktionen verschoben msuter
Zeile 1: Zeile 1:
 +====== LU09.L02 - Inhalte in Methoden auslagern ======
 +
 +==== 1. Menüauswahl in Methode 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:
 +
 +<code java>
 +# 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!')
 +</code>
 +
 +Wir möchten diesen Programmteil nun in eine externe Methode packen. Wir arbeiten uns also durch unsere 3 Schritte durch:
 +
 +=== 1. Funktionsblock definieren ===
 +
 +  * **Name**: Die Methode druckt die Menüauswahl auf die Konsole aus, mögliche Namen wären z.B ''print_menue'', ''print_dialog'', etc.
 +  * **Parameter**: Der Methode müssen keine Informationen übergeben werden. Die Parameterliste ist also Leer ''()''
 +  * **Return**: Die Methode gibt keinen Wert zurück, ist also ''None''
 +
 +<code python>def print_menue():</code>
 +
 +=== 2. docstring erstellen ===
 +Ein kurzer beschreibender Satz.
 +<code python>
 +def print_menue():
 +    """
 +    Prints the menue to the user
 +    :return: None
 +    """
 +</code>
 +
 +=== 3. Logik Implementieren ===
 +
 +<file python main.py>
 +def print_menue():
 +    """
 +    Prints the menue to the user
 +    :return: None
 +    """
 +    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!')
 +
 +def talk_to_user():
 +    """
 +    Talks to the user to determine what he wants.
 +
 +    :return: None
 +    """
 +
 +    print('Lieber Benutzer, herzlich willkommen zu diesem Programm')
 +
 +    # Show Menue
 +    print_menue()
 +    selection = input('>> ')
 +
 +    while selection != 'x':
 +        if selection == 'f':  # Fibonacci
 +            print('Which position of the Fibonacci-List do you want to know?')
 +            position = int(input(''))
 +            number1 = 0
 +            number2 = 1
 +            counter = 3
 +            while counter <= position:
 +                next_number = number1 + number2
 +                number1 = number2
 +                number2 = next_number
 +                counter += 1
 +
 +            print(number2)
 +        elif selection == 'e':  # Kleines Einmaleins
 +            print('Which number do you want to learn?')
 +            number = int(input(''))
 +            for counter in range(0, 11):
 +                print(number * counter)
 +        elif selection == 'g':  # Odd or Even
 +            print('Enter a number to check for odd/even?')
 +            number = int(input('Give a number:\n'))
 +            if number % 2 == 0:
 +                print(f'Number {number} is even.')
 +            else:
 +                print(f'Number {number} is odd.')
 +        else:  # Wrong input
 +            print('Befehl nicht verstanden, bitte erneut eingeben.')
 +
 +        print_menue()
 +        selection = input('>> ')
 +
 +
 +if __name__ == '__main__':
 +    talk_to_user()
 +
 +
 +</file>
 +
 +
 +==== 2. Unterprogramme auslagern ====
 +Um die Übersichtlichkeit des Codes zu erhöhen, lagern wir die Unterprogramme () in eigene Methoden aus.
 +
 +
 +=== 1. Funktionsblock definieren ===
 +
 +|                   ^ Name                ^ Parameter   ^ Funktion                    |
 +^ Fibonacci          fibonacci            | ()          | ''def fibonacci():''            |
 +^ Einmaleins         multiplication_table | ()          | ''def multiplication_table():''   |
 +^ Gerade/Ungerade    odd_or_even          | ()          | ''def odd_or_even():''          |
 +
 +
 +=== 2. docstring erstellen ===
 +
 +|                   ^ docstring                                                  |                
 +^ Fibonacci         | Prints the value from the Fibonacci series at position x.  |
 +^ Einmaleins        | Prints the multiplication table for the number x.          | 
 +^ Gerade/Ungerade   | Prints if the value is even or odd                         
 +
 +=== 3. Logik implementieren ===
 +<file python main.py>
 +
 +def print_menue():
 +    """
 +    Prints the menue to the user
 +    :return: None
 +    """
 +    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!')
 +
 +
 +def fibonacci():
 +    """
 +    Prints the value from the Fibonacci series at position x.
 +    :return: None
 +    """
 +    print('Which position of the Fibonacci-List do you want to know?')
 +    position = int(input(''))
 +    number1 = 0
 +    number2 = 1
 +    counter = 3
 +    while counter <= position:
 +        next_number = number1 + number2
 +        number1 = number2
 +        number2 = next_number
 +        counter += 1
 +
 +    print(number2)
 +
 +
 +def multiplication_table():
 +    """
 +    Prints the multiplication table for the number x.
 +    :return:
 +    """
 +    print('Which number do you want to learn?')
 +    number = int(input(''))
 +    for counter in range(0, 11):
 +        print(number * counter)
 +        
 +
 +def even_or_odd():
 +    """
 +    Prints if the value is even or odd
 +    :return: 
 +    """
 +    print('Enter a number to check for odd/even?')
 +    number = int(input('Give a number:\n'))
 +    if number % 2 == 0:
 +        print(f'Number {number} is even.')
 +    else:
 +        print(f'Number {number} is odd.')
 +
 +
 +def talk_to_user():
 +    """
 +    Talks to the user to determine what he wants.
 +
 +    :return: None
 +    """
 +
 +    print('Lieber Benutzer, herzlich willkommen zu diesem Programm')
 +
 +    # Show Menue
 +    print_menue()
 +    selection = input('>> ')
 +
 +    while selection != 'x':
 +        if selection == 'f':  # Fibonacci
 +            fibonacci()
 +        elif selection == 'e':  # Kleines Einmaleins
 +            multiplication_table()
 +        elif selection == 'g':  # Odd or Even
 +            even_or_odd()
 +        else:  # Wrong input
 +            print('Befehl nicht verstanden, bitte erneut eingeben.')
 +
 +        print_menue()
 +        selection = input('>> ')
 +
 +
 +if __name__ == '__main__':
 +    talk_to_user()
 +
 +</file>
 +
 +----
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi
  
  • de/modul/m319/learningunits/lu09/loesungen/funktionen.txt
  • Zuletzt geändert: 2025/06/23 07:45
  • von msuter