<    >

Funktionen

Teile eines Programms können in eine Funktion ausgelagert werden.
Stösst Python auf eine Funktionsdefinition, dann wird der enthaltene Programmcode nicht ausgeführt sondern nur der Name der Funktion registriert.
Erst durch einen Funktionsaufruf springt der Programmfluß zur vorbereiteten Funktion und führt den enthaltenen Programmcode aus.
def:
Damit wird eine Funktion definiert. Der Funktion können 0, 1 oder mehrere Übergabewerte (Parameter) übergeben werden.
Die runden Klammern werden auch benötigt, wenn kein Parameter übergeben wird.
Das gilt sowohl für die Definition und den Aufruf.
return:
Wenn ein Wert zurückgegeben wird, wird dieser an der aufrufenden Stelle eingesetzt:
Aus 3 + f() wird zum Beispiel 3 + 2, falls f() 2 zurückliefert
Wenn kein Wert zurückgegeben wird, wird an die Stelle unmittelbar nach dem Funktionsaufruf zurückgesprungen und fortgesetzt.
Im Beispiel unten enthält die Zeile "print(ist_gerade(10))" als einzige einen print-Befehl.
Das ist tatsächlich notwendig, denn der zurückgegebene Wert muss auch in geeigneter Weise übernommen werden.
Die anderen Funktionen führen die Ausgabe selbst durch und liefern nichts zurück.
Eine Funktion kann 0, 1 oder mehrere return-Anweisungen enthalten. Ein return beendet die Ausführung der Funktion.
%:
Damit wird in Python der Modulo-Operator umgesetzt.
Zum Beispiel folgt:
x % 2 == 0 → x ist gerade
x % 2 != 0 → x ist gerade



        
      

Übungen

1)

   *
  ***
 *****
*******
   *
Schreib eine Funktion, die genau den obigen Baum zeichnet.
Verwende den Multiplikationsoperator (*) zum Duplizieren von Zeichenketten.

2) schwierig!
Wie oben, aber die Größe des Baum soll über einen Übergabewert gesteuert werden können.
Zum Beispiel obiger Baum hätte Größe 4.

3)
Schreib eine Funktion die entweder Zoll in cm umrechnet oder Fahrenheit in Celsius.)
1 Zoll = 2,54cm, °C = (°F - 32) * 5/9)
Gib der Funktion einen vernünftigen Namen.
Die aufgerufenen Funktion soll das Ergebnis mit print ausgeben.

4)
Wie oben, aber die aufgerufenen Funktion soll das Ergebnis mit return zurückgeben.
Das Programm soll zeigen, wie diese Funktion verwendet wird.







Lösungen


#-------------------------------
# 1)
#
#    *
#   ***
#  *****
# *******
#    *
#
# Schreib eine Funktion, die genau den obigen Baum zeichnet.
# Verwende den Multiplikationsoperator (*) zum Duplizieren von Zeichenketten.

def tree():
    print("   *")
    print("  ***")
    print(" *****")
    print("*******")
    print("   *")
    
tree()

#--- oder:

def tree():
    print(" " * 3 + "*")
    print(" " * 2 + "*" * 3)
    print(" " * 1 + "*" * 5)
    print("*" * 7)
    print(" " * 3 + "*")

tree()

#-------------------------------
# 2) schwierig!
# Wie oben, aber die Größe des Baum soll über einen Übergabewert
# gesteuert werden können.
# Zum Beispiel obiger Baum hätte Größe 4.

def tree(size):
    for i in range(size):
        print(" " * (size - i - 1) + "*" * (i * 2 + 1))
    print(" " * (size - 1) + "*")
tree(4)

#-------------------------------
# 3)
# Schreib eine Funktion die entweder Zoll in cm umrechnet oder Fahrenheit in Celsius.)
# 1 Zoll = 2,54cm, °C = (°F - 32) * 5/9)
# Gib der Funktion einen vernünftigen Namen.
# Die aufgerufenen Funktion soll das Ergebnis mit print ausgeben.

def zoll_in_cm(zoll):
    print(zoll * 2.54)

zoll_in_cm(2)

def fahrenheit_nach_celsius(grad_fahrenheit):
    print((grad_fahrenheit - 32) * 5/9)

fahrenheit_nach_celsius(100)

#-------------------------------
# 4)
# Wie oben, aber die aufgerufenen Funktion soll das Ergebnis mit return zurückgeben.
# Das Programm soll zeigen, wie diese Funktion verwendet wird.

def zoll_in_cm(zoll):
    return zoll * 2.54

print(zoll_in_cm(2))

def fahrenheit_nach_celsius(grad_fahrenheit):
    return (grad_fahrenheit - 32) * 5/9

print(fahrenheit_nach_celsius(100))
<    >