Zum Inhalt

Funktionen

Befehle sind kleinere Teilprogramme die für uns ein mehrfach auftretendes Teilproblem lösen. Wenn ein Befehl ein bestimmtes Verhalten aufweist, dann nennen wir ihn auch eine Funktion.

Wenn wir einen Befehl aufrufen, "springt" das Programm zu dem Befehl, wenn der Befehl fertig ausgeführt ist, "springt" es wieder zurück. Bei diesem "Sprung" zurück, können wir Informationen vom Teilprogramm an das Hauptprogramm weiterleiten. Dem sagen wir: einen Wert zurückgeben.

Fachbegriff: Funktion

Eine Funktion ist ein Befehl, welcher einen Werte zurückgibt. Dadurch können Informationen von dem Teilprogramm (Befehl) an das Hauptprogramm "gesendet" werden. Damit ein Befehl einen Wert zurückgeben kann, muss er mit dem Schlüsselwort return markiert werden.

Beispiel: eine Funktion

In diesem Programm wird eine neue Funktion mit dem Namen verdopppeln und einem Parameter x definiert. Dies ist genau gleich wie bei einem Befehl. Neuerdings gibt der Befehl jedoch einen Wert zurück, darum ist es jetzt auch eine Funktion. Zurückgegeben wird das zweifache vom Parameter x. Dazu wird dies zuerst berechnet und in der Variable y gespeichert. Diese Variable wird mit return markiert als Rückgabewert.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Fachbegriff: Rückgabewert

Mit Rückgabewert bezeichnen wir den Wert, welcher von einer Funktion zurückgegeben wird. Er wird mit dem Schlüsselwort return markiert. return beendet zudem die Ausführung der Funktion sofort.

Beispiel: Verhalten von return

In diesem Programm wird eine neue Funktion mit dem Namen vierfache und einem Parameter x definiert. Zurückgegeben sollte das vierfache vom Parameter x. Bei der Programmierung ist uns aber einen Fehler passiert und wir geben direkt den Parameter x auf Zeile 2 zurück. Der Rest der Funktion wird nicht mehr ausgeführt!

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Aufgaben 1

Quadratzahl

Question

Schreibe eine Funktion, welche die Quadratzahl für einen Parameter berechnent und zurückgibt. Du kannst den Namen der Funktion und des Parameters frei wählen. Teste deine Funktion in dem du die Quadratzahl für 4 und 5 berechnest und überprüfst.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

.128013öesuhqftlv1gndbcpmo(ari=)/y:*zLk 2050o0c0i0v0x0j0d0H0q0j0v0d0d0y010i0x0r010406050d0e0s0s0v0w0B040F0b0*0n0m050A0*0,0.0:0(0r0405110`140A110(0o0x0k0R0T0V0X0f0x0m0f0j1i0f0i0$050M0p0j0c1d0U0W011h1j1l1j0i1r1t1p0i0w120i0f0R0t0P0r0v0n0X0I011v1f010h0O0c0n0v0s0c1p0d1P0n1V1x1Y1t1#1%0$0a0H0=0@0m0d0k0t0w0d0q1k0v0_0{1+120A1K271H1J1I1q0o1-0X1l0n1!0t0d1p1a1c0S1w2h0x2j0n0t2o1p0r0w0c121*1Q272D0n2C1+2g012v0w0-0j0$0l0`2G0%0)2J2q1W2M2O0$0I2S26152A272o2a0o1J2f2X1x0q2w1(122,132*2V2E2%2~2?0K2I1Q2K0G0$0K0h2 2H0H2}1,2;0X0n0h0$0g0e0v0o0w0v0i0E0v1k3a333e1e1x0#040u3u3d2K0n0$0n3C2G2K3z0z0C3u060H3Q3c3J3f0136042A0i0e0w3H252E3S2W3x3g3G3I3*2r010t0$0D3.343U3F043$2T0(0A312B2)420A2`282.0`2b490v1s442,3 0K0M0O0d04.
Lösung
1
2
def quadratzahl(n):
    return n*n

Quadratumfang

Question

Schreibe eine Funktion mit dem Namen quadratumfang und einem Parameter für die Seitenlänge. Die Funktion soll den Umfang eines Quadrats berechnent und zurückgeben.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.
Verbleibende Versuche : 5/5

.128013öesuhqftlv1g3ndbcpmo(ari=)/y:*Lk4 2050p0c0i0w0y0j0d0I0r0j0w0d0d0z010i0y0s010406050d0e0t0t0w0x0C040F0b0+0o0m050B0+0-0/0;0)0s0405120{150B120)0p0y0k0S0U0W0Y0f0y0m0f0j1j0f0i0%050N0q0j0c1e0V0X011i1k1m1k0i1s1u1q0i0x130i0f0S0u0Q0s0w0o0Y0J011w1g010h0P0c0o0w0t0c1q0d1Q0o1W1y1Z1u1$1(0%0a0I0?0^0m0d0k0u0x0d0r1l0w0`0|1,130B1L281I1K1J1r0p1.0Y1m0o1#0u0d1q1b1d0T1x2i0y2k0o0u2p1q0s0x0c131+1R282E0o2D1,2h012w0x0.0j0%0l0{2H0(0*2K2r1X2N2P0%0J2T270)2H2L2!0w2Q040n2(2F162B282p2b0p1K2g2Y1y0r2x1)132`142^2W2?262?310L2J1R2L0G0%0L0h2=2I0I381-2 0Y0o0h0%0g0e0w0p0x0w0i0,0h1R252U3o2L0$040v3l3e3p1f1y0o0%0d0c0y0i0c3M3H3q013J0A0D3M060I3+3n2+3!3R043C3E3M3-2X3P0Y0u0%0z3@3Z3`010t0y0%0H3 3.413|040E473_2s2M3S3U3W3)3,3^3f3!3h042B3B0x0o4d4n413:3=0_3)0{3c2C2@4E0B35292|0{2c4L0w1t4G2`0)4H0M0O0Q04.
Lösung
1
2
3
def quadratumfang(seite):
    umfang = 4 * seite
    return umfang

Mehrere Parameter

Eine Funktion kann auch mehr als nur ein Parameter erhalten. Bei mehreren Parametern schreiben wir die Namen einfach durch ein Komma getrennt innerhalb der zwei Klammern auf (). Dasselbe gilt auch für normale Befehle.

Beispiel: Mehrere Parameter

In diesem Programm wird eine neue Funktion mit dem Namen additionsFunktion und zwei Parameter x und y definiert. Zurückgegeben wird die Summe der zwei Parameter.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Aufgaben 2

Rechteckumfang

Question

Schreibe eine Funktion mit dem Namen rechteckumfang und zwei Parameter für die Breite und Höhe von einem Rechteck. Die Funktion soll den Umfang des Rechtecks berechnent und zurückgeben.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.
Verbleibende Versuche : 5/5

.128013öesuhftlv1g3ndb+cpmo(ari=)/y:*L,k 2050o0c0h0w0y0i0d0I0r0i0w0d0d0z010h0y0s010406050d0e0t0t0w0x0C040F0b0+0n0l050B0+0-0/0;0)0s0405120{150B120)0o0y0j0S0U0W0Y0f0y0l0f0i1j0f0h0%050N0p0i0c1e0V0X011i1k1m1k0h1s1u1q0h0x130h0f0S0u0Q0s0w0n0Y0J011w1g010g0P0c0n0w0t0c1q0d1Q0n1W1y1Z1u1$1(0%0a0I0?0^0l0d0j0u0x0d0r1l0w0`0|1,130B1L281I1K1J1r0o1.0Y1m0n1#0u0d1q1b1d0T1x2i0y2k0n0u2p1q0s0x0c131+1R282E0n2D1,2h012w0x0.0i0%0k0{2H0(0*2K2r1X2N2P0%0J2T270)2H2L2!0w2Q040m2(2F162B282p2b0o1K2g2Y1y0r2x1)132`142^2W2?262?310L2J1R2L0H0%0L0g2=2I0I381-2 0Y0n0g0%2B220h0c0r0H0,0g1R252U3o2L0$040v3l3e3p1f1y0n0%0w3L3G3q013I0G3L3n2+3V3Q040p3T3#3O0Y3I0A0D3L060I3?3!2X3,2M0%3B3D3Z3U3`0u0%0z3 3+2s010t0y2$453_4742040E4c3f3$3R4i3N4e0%0q4m2L494b3a3m404o4g4r4k3(3;3@3^4j3`3h042B0h0e0x0n4A3`3%3}0_3;0{3c2C2@4X0B35292|0{2c4(0w1t4Z2`0)4!0M0O0Q04.
Lösung
1
2
3
def rechteckumfang(a, b):
    umfang = 2 * a + 2 * b
    return umfang

Minimum

Question

Schreibe eine Funktion mit dem Namen minimum und zwei Parameter. Die Funktion erhält als Parameter zwei Zahlen und soll die kleinste Zahl der beiden Parameter zurückgeben. Somit berechnet sie das Minimum von zwei Zahlen.

Hinweis: Was passiert wenn beide Zahlen gleich gross sind?

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.
Verbleibende Versuche : 5/5

.128013öesuh;ftlv16g3ndbcpmo(ari=)/y:L,k45 2050q0c0i0x0z0j0d0K0s0j0x0d0d0A010i0z0t010406050d0e0u0u0x0y0D040F0b0-0p0n050C0-0/0;0?0+0t0405140}170C140+0q0z0k0U0W0Y0!0f0z0n0f0j1l0f0i0)050P0r0j0c1g0X0Z011k1m1o1m0i1u1w1s0i0y150i0f0U0v0S0t0x0p0!0L011y1i010h0R0c0p0x0u0c1s0d1S0p1Y1A1#1w1(1*0)0a0K0^0`0n0d0k0v0y0d0s1n0x0|0~1.150C1N2a1K1M1L1t0q1:0!1o0p1%0v0d1s1d1f0V1z2k0z2m0p0v2r1s0t0y0c151-1T2a2G0p2F1.2j012y0y0:0j0)0l0}2J0*0,2M2t1Z2P2R0)0L2V290+2J2N2$0x2S040o2*2H2,2Z1h1A2/2;0I2@2K2_1T2.212%040J302X2-2!2|352:0)0m39182D2a2r2d0q1M2i3c0!0s2z1+153m163k2Y2H3i3t0N2L333r010H0)0N0h390K3A1/3H0p0h0)0u2w0z0u0.3i3b2{0!0(040w3!2`2u2O0)0x3+3G3$013(0G3N3P2.0)0r3;3Q3?3(0B0E3906060K483O3#3-3J040z3M282H4a3,2#3/3`4b1Z0v0)020j0i0g4n4k2|3}3 2N3(444h31494G4j3=4c0)2D0i0e0y0p4w4J4l043:4E0*4G3{3H4d0c0S0c4A3H4C454H494Z3?4d4M4O4Q4W4I403-0p4z4W0+0C3D2E3j520C3x2b3o0}2e590x1v543m4 0N0P0R0d04.
Lösung
1
2
3
4
5
6
def minimum(a, b):

    if a < b:
        return a
    else:
        return b