Funktionen

Notizen

  • korrekte Einrückung von untergeordneten Codeblöcken ist Teil korrekter Python-Syntax

    • das heißt, die Einrückung soll nicht nur optisch Programmteile hervorheben, sie wird auch vom Interpreter als bedeutungstragend erkannt. Probieren sie beispielsweise aus, eine Zeile in der Funktionsdefinition ein Leerzeichen mehr oder weniger einzurücken.

    • Standard sind vier Leerzeichen

    • Tabulator-Zeichen möglichst vermeiden, echte Leerzeichen verwenden

    • am besten den Editor so einstellen, dass TABs automatisch durch 4 Leerzeichen ersetzt werden (bei vielen Code-Editoren ist das die Voreinstellung)

Aufgaben

  • Bearbeiten Sie die folgende Aufgabe 02 und speichern Sie das Ergebnis in Ihrem pythonanywhere-Account! Sie können den nachfolgenden Text der Aufgabenstellung auch direkt in den Editor bei pythonanywhere kopieren. (Muster 02)

    aufgabe_02_uhren.py
    # Definieren Sie eine Funktion ``uhradd(h, m, diff_h, diff_m)``,
    # die bei Übergabe einer Uhrzeit (h...Stunde, m...Minute) und einer Zeitdifferenz
    # (gegeben in Stunden und Minuten) die End-Uhrzeit des so definierten
    # Zeitintervalls als Rückgabewert (als String) zurückgibt, z. B. anderthalb
    # Stunden nach 13:45 Uhr ::
    #
    #    >>> print(uhradd(13,45,1,30))
    #    15 : 15
    #
    # Bonus: Schreiben Sie die Funktion so, dass auch beim Über- oder
    # Unterschreiten von Mitternacht bzw. Null Uhr eine korrekte Zeit angezeigt wird:
    # 
    #    >>> print(uhradd(23,45,1,30))
    #    1 : 15
    
    # Tipp 1: Ganzzahldivision und der Rest-Operator '%' könnten hilfreich sein.
    # Tipp 2: Um numerische Werte in String/Zeichenketten umzuwandeln,
    #         verwenden sie die Funktion str(), siehe auch Kapitel 3.1
    #         13+45 ergibt 58
    #         str(13)+str(45) ergibt 1345
    
    
    def uhradd(h, m, diff_h, diff_m):
        #hier kommt ihr Code hin
        return endzeit
    
    print(uhradd(13,45,1,30)) # soll 15:15 ergeben
    print(uhradd(14,30,-2,0)) # soll 12:30 ergeben
    print(uhradd(23,45,1,30)) # soll  1:15 ergeben
    
  • Lesen Sie im Buch die folgenden Abschnitte:

    • Kapitel 5 zum Thema Conditionals (außer die Abschnitte 5.8, 5.9, 5.10 zum Thema Rekursion)

    • Kapitel 6 zum Thema Fruitful Functions, hier nur Abschnitte 6.1 und 6.2

    • Kapitel 7 zum Thema Iteration

    • (Kapitel 4 wird in der Vorlesung nicht besprochen)