Das erste Programm Funktionen Mastermind Ende Einführung in Python Arne Hüffmeier 1 / 35 Das erste Programm Funktionen 1 Das erste Programm 2 Funktionen 3 Mastermind 4 Ende Mastermind Ende 2 / 35 Das erste Programm Funktionen Mastermind Ende Mittelwert berechnen Wir wollen jetzt ein kleines Programm schreiben, welches den Mittelwert berechnen kann. 3 / 35 Das erste Programm Funktionen Mastermind Ende Wie gehen wir vor? 4 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen, die man sich vorher stellen sollte 1 Welchen Mittelwert? 2 Wie sieht die Eingabe aus? 3 Wie sieht die Ausgabe aus? 4 Wie ist der Ablauf? 5 / 35 Das erste Programm Funktionen Mastermind Ende 1) Welchen Mittelwert? 6 / 35 Das erste Programm Funktionen Mastermind Ende 1) Welchen Mittelwert? Am Anfang nehmen wir das arithmetische Mittel n 1X x1 + x2 + · · · + xn xi = n i=1 n 6 / 35 Das erste Programm Funktionen Mastermind Ende 2) Wie sieht die Eingabe aus? 7 / 35 Das erste Programm Funktionen Mastermind Ende 2) Wie sieht die Eingabe aus? Um es einfach zu gestalten, nehmen wir als Eingabe einfach eine Liste an 1 numbers= [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 , 3 3 ] 7 / 35 Das erste Programm Funktionen Mastermind Ende 3) Wie sieht die Ausgabe aus? 8 / 35 Das erste Programm Funktionen Mastermind Ende 3) Wie sieht die Ausgabe aus? Bei der Ausgabe reicht uns ein einfaches print 1 p r i n t ( " Das ␣ Arithmetische ␣ Mittel ␣ ist : " , e r g e b n i s ) 8 / 35 Das erste Programm Funktionen Mastermind Ende Ablauf Malen wir mal etwas. 9 / 35 Das erste Programm Funktionen Mastermind Ende Ablauf Und jetzt das Ganze in Python. 10 / 35 Das erste Programm Funktionen Mastermind Ende Ablauf kleine Verbesserung Dieses kleine Programm funktioniert zwar, jedoch würde das Programm sehr unübersichtlich werden, wenn wir weitere Mittelwerte berechnen wollen. Zudem würde jede Berechnung ausgeführt, auch wenn wir das nicht wollen. 11 / 35 Das erste Programm Funktionen Mastermind Ende Ablauf kleine Verbesserung Dieses kleine Programm funktioniert zwar, jedoch würde das Programm sehr unübersichtlich werden, wenn wir weitere Mittelwerte berechnen wollen. Zudem würde jede Berechnung ausgeführt, auch wenn wir das nicht wollen. Was passiert, wenn wir bei einem größeren Projekt an mehreren Stellen den arithmetischen Mittelwert benötigen? 11 / 35 Das erste Programm Funktionen Mastermind Ende Ablauf kleine Verbesserung Dieses kleine Programm funktioniert zwar, jedoch würde das Programm sehr unübersichtlich werden, wenn wir weitere Mittelwerte berechnen wollen. Zudem würde jede Berechnung ausgeführt, auch wenn wir das nicht wollen. Was passiert, wenn wir bei einem größeren Projekt an mehreren Stellen den arithmetischen Mittelwert benötigen? Um mehrfaches Auftauchen von gleichen Codeschnipseln zu verhindern, gibt es Funktionen. 11 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion In Python. 12 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion Was ist neu? Es ist nur eine Zeile dazu gekommen 1 def arithmetic_mean () : def = es handelt sich um eine Funktion arithmetic_mean = Funktionsname (dieser ist frei wählbar) (): = Parameter und Ende 13 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion Aufruf einer Funktion. 14 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion So etwas kennen wir doch schon?! 1 p r i n t ( " Hallo " ) Das print ist auch eine Funktion. Diese Funktion wurde von den Python Entwicklern für uns geschrieben. 15 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion So etwas kennen wir doch schon?! 1 p r i n t ( " Hallo " ) Das print ist auch eine Funktion. Diese Funktion wurde von den Python Entwicklern für uns geschrieben. Doch bei dieser Funktion schreiben wir etwas in die Runden Klammern (Das sind die Parameter). 15 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion Einbau von Parametern. 16 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion Infos zu Parametern Eine Funktion kann auch mehrere Parameter bekommen. 1 d e f add ( a , b , c , d , e ) : 2 ergebniss = a + b + c + d + e 3 print ( ergebniss ) Der Aufruf der Funktion sieht dann dementsprechend aus: 1 add ( 1 , 2 , 3 , 4 , 5 ) 17 / 35 Das erste Programm Funktionen Mastermind Ende Auslagern als Funktion Infos zu Parametern Eine Funktion kann auch mehrere Parameter bekommen. 1 d e f add ( a , b , c , d , e ) : 2 ergebniss = a + b + c + d + e 3 print ( ergebniss ) Der Aufruf der Funktion sieht dann dementsprechend aus: 1 add ( 1 , 2 , 3 , 4 , 5 ) Wichtig ist, dass die Reihenfolge stimmt. In diesem Beispiel wäre a = 1, b = 2, c = 3, d = 4 und e = 5 17 / 35 Das erste Programm Funktionen Mastermind Ende Funktionen mit return-Wert Was ist, wenn wir mit dem Ergebnis noch weiter rechnen möchten? 18 / 35 Das erste Programm Funktionen Mastermind Ende Funktionen mit return-Wert Infos zu return Mit dem return endet die Funktion sofort. 1 def 2 3 4 test () : p r i n t ( " erster ␣ Text " ) return 1 p r i n t ( " zweiter ␣ Text " ) Bei dieser test-Funktion würde das zweite print nicht ausgeführt werden. 19 / 35 Das erste Programm Funktionen Mastermind Ende Das Zweite Programm Das erste Programm war sehr klein und zugegebenermaßen auch nicht wirklich interessant. Deswegen werden wir jetzt ein kleines Spiel programmieren. 20 / 35 Das erste Programm Funktionen Mastermind Ende Das Zweite Programm Das erste Programm war sehr klein und zugegebenermaßen auch nicht wirklich interessant. Deswegen werden wir jetzt ein kleines Spiel programmieren. Mastermind 20 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen Wir erinnern uns noch mal an die Fragen beim ersten Programm. 21 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen Wir erinnern uns noch mal an die Fragen beim ersten Programm. Wichtige Fragen, die man sich vorher stellen sollte: 1 Welche Regeln hat das Spiel? 2 Wie sieht die Eingabe aus? 3 Wie sieht die Ausgabe aus? 4 Wie ist der Ablauf? 21 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 1) Welche Regeln hat das Spiel? 22 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 1) Welche Regeln hat das Spiel? Es müssen 5 Farben ausgewählt werden. 22 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 1) Welche Regeln hat das Spiel? Es müssen 5 Farben ausgewählt werden. Zur Auswahl stehen 8 Farben. 22 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 1) Welche Regeln hat das Spiel? Es müssen 5 Farben ausgewählt werden. Zur Auswahl stehen 8 Farben. Der Spieler hat 12 Versuche, um die richtige Farbauswahl zu ”erraten”. 22 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 1) Welche Regeln hat das Spiel? Es müssen 5 Farben ausgewählt werden. Zur Auswahl stehen 8 Farben. Der Spieler hat 12 Versuche, um die richtige Farbauswahl zu ”erraten”. Nach jedem Versuch bekommt er die Rückmeldung, wie häufig die richtige Farbe am richtigen Platz war und wie häufig die richtige Farbe am falschen Platz war. 22 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 2) Wie sieht die Eingabe aus? 23 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 2) Wie sieht die Eingabe aus? Hier geht es leider nicht mit einer einfachen Liste, denn der Spieler muss auf die Ausgaben reagieren können. Also benötigen wir eine Eingabe für jede Runde. 23 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 3) Wie sieht die Ausgabe aus? 24 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 3) Wie sieht die Ausgabe aus? Die Ausgabe können wir mit print realisieren, jedoch brauchen wir Verschiedene. 1 Nach jedem Versuch des Spielers mit den Informationen: Runden-Nummer, Infos zur Eingabe 24 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 3) Wie sieht die Ausgabe aus? Die Ausgabe können wir mit print realisieren, jedoch brauchen wir Verschiedene. 1 Nach jedem Versuch des Spielers mit den Informationen: Runden-Nummer, Infos zur Eingabe 2 Wenn der Spieler richtig geraten hat. 24 / 35 Das erste Programm Funktionen Mastermind Ende Wichtige Fragen 3) Wie sieht die Ausgabe aus? Die Ausgabe können wir mit print realisieren, jedoch brauchen wir Verschiedene. 1 Nach jedem Versuch des Spielers mit den Informationen: Runden-Nummer, Infos zur Eingabe 2 Wenn der Spieler richtig geraten hat. 3 Wenn der Spieler es nicht geschafft hat, in der maximalen Anzahl Runden richtig zu raten. 24 / 35 Das erste Programm Funktionen Mastermind Ende Der Ablauf Malen wir mal wieder etwas. 25 / 35 Das erste Programm Funktionen Mastermind Ende Die Implementation Und jetzt das Ganze als Programm. 26 / 35 Das erste Programm Funktionen Mastermind Ende random random Um Zufallszahlen zu erstellen, gibt es die Funktion randrange. Diese hat als Parameter die Grenzen des Zufallszahlenbereichs. 1 randrange (1 ,8) Jedoch kennt Python diesen Befehl von alleine nicht. Wir müssen ihn erst einbinden. Das passiert über: 1 from random i m p o r t r a n d r a n g e Diese Zeile kommt einfach weit nach oben ins Programm. 27 / 35 Das erste Programm Funktionen Mastermind Ende Weiter im Programm Weiter in Python. 28 / 35 Das erste Programm Funktionen Mastermind Ende Benutzereingaben Wie kann der Spieler seine Zahlen-Kombination eingeben ? Für eine einfache Benutzereingabe gibt es die Funktion input() 1 e i n g a b e = i n p u t ( " Was ␣ haben ␣ Sie ␣ zu ␣ sagen ? " ) 2 p rin t ( eingabe ) Als Parameter kann die Funktion einen Text bekommen, der vor der Eingabe ausgegeben werden soll. Als Rückgabe bekommt man die Eingabe des Benutzers. 29 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Weiter in Python. 30 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Überprüfen, ob die Eingabe richtig ist 1 def checkInput ( inp , c o l o r ) : 2 pass 31 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Was müssen wir testen? 32 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Was müssen wir testen? Stimmt die Eingabe überein? 32 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Was müssen wir testen? Stimmt die Eingabe überein? Stimmt Position und Zahl überein? 32 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Was müssen wir testen? Stimmt die Eingabe überein? Stimmt Position und Zahl überein? Kommt die Zahl in der Kombination vor? 32 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Was müssen wir testen? Stimmt die Eingabe überein? Stimmt Position und Zahl überein? Kommt die Zahl in der Kombination vor? Ist die Eingabe des Spielers fünf Zahlen lang? 32 / 35 Das erste Programm Funktionen Mastermind Ende Mastermind Was müssen wir testen? Stimmt die Eingabe überein? Stimmt Position und Zahl überein? Kommt die Zahl in der Kombination vor? Ist die Eingabe des Spielers fünf Zahlen lang? Hat der Spieler nur Zahlen eingegeben? 32 / 35 Das erste Programm Funktionen Mastermind Ende Eingabe Weiter mit der Eingabe. 33 / 35 Das erste Programm Funktionen Mastermind Ende Eingabe Herzlichen Glückwunsch. Wir haben jetzt ein Python-Spiel programmiert. 34 / 35 Das erste Programm Funktionen Mastermind Ende Geschafft Nun habt ihr einen etwas tieferen Einstieg in Python Viel Spaß im Tutorium 35 / 35