Aufgaben für den 28.11.2023 – Einführung Funktionen

Wir haben in den letzten Stunden schon oft die Buildin-Funktioen print() und input() verwendet. Heute lernt ihr, wie ihr selbst Funktionen in Python definieren könnt.

Video 1: Einführung Funktionen
Video 2: Funktionen mit Parametern
Video 3: Funktionen mit Rückgabewert

Schaut euch die drei Videos an und versucht nachzuvollziehen, was dort besprochen wird.
Jetzt sollte das Prinzip klar sein!

  1. Programmiert zunächst maximum-Funktion aus dem Video 3 nach, falls ihr das noch nicht gemacht habt.
  2. Programmiert eine weitere Funktion max_of_three(param1, param2, param3), die das Maximum aus 3 Parametern ermittelt. (Nicht schummeln und die eingebaute max-Funktion nutzen).
  3. Wenn die Funktion aus Aufgabe 2 ohne Syntax-Error läuft. Tausche mit deinem Nachbarn kurz die Plätze und lass die Funktion von ihm testen und teste seine.

Aufgabe 2: Zahlenratespiel

Im unteren grauen Feld findest du den Anfang eines Python-Programms mit vielen Kommentaren. Versuche die Kommentare in Python-Code zu übersetzen und deinen Programm-Code anschließen zu debuggen bis du ein funktionierendes Zahlenratespiel hast. Also Text aus der grauen Box nach Thonny kopieren und loslegen!

Das Programm soll zunächst “Willkommen beim Zahlenratespiel ! Errate eine Zaufallszahl zwischen 1 und 100″ ausgeben und dann so lange die Eingabeaufforderung „Gib eine Zahl ein: “ ausgeben bis die Zahl erraten ist. Wird eine Zahl eingegeben, bekommt der Spieler Rückmeldung, ob seine Zahl größer oder kleiner ist als die Zufallszahl des Computers. Wird die Zahl erraten, gibt das Programm aus, wie viele Versuche der Spieler benötigt hat.

# Import der Zufallszahlen-Library - einfach so lassen
import random

# eine eigene Input funktion die solange nervt bis man wirklich einen Int eingibt
def intInput(Eingabeaufforderung):
    result = False
    while not(result):
        value = input(Eingabeaufforderung)
        # Hier wird auch schon Eror-Handling verwendet
        try:
            zahl = int(value)
        except ValueError:
            result = False
        else:
            result = True
    return zahl

# Zufällige Zahl zwischen 1 und 100 auswählen
ZielZahl = random.randint(1, 100)
# Die Variable ZielZahl enthält jetzt ein Zufallszahl zwischen 1 und 100

# Hier werden zwei Variablen anlegen, die du vielleicht brauchst
versuche = 0
geraten = False

# Der Spieler wird in zum Spielen eingeladen
print("Willkommen beim Zahlenratespiel! Errate die Zahl zwischen 1 und 100.")

# Wiederhole die Ausgabe "Gib eine Zahl ein: " bis die Zahl erraten wurde
while xyz: # xyz müsst ihr durche eine funktionierende Bedingung ersetzt werden
    # Lies eine Zahl vom Benutzer ein
    # benutze hier am besten unsere neuen Funktion intInput() um tatsäclich eine Zahl zurückzubekommen
    
    # Entscheide ob die Zahl, die eingegeben wurde größer oder kleiner als die Zielzahl ist, oder ob die Zielzahl erraten wurde 
    # Dazu müst ihr euch evtl. nochmal die Unterlagen zu Verzeigungen anschauen.
    # Gibt eine entsprechende Meldung aus
    # Wenn die Zahl erraten wurde gib aus wie viele Versuche benötigt wurden