Grundlagen Python (2/5): Kommentare, Bibliotheken, Verzweigungen

Bildschirm mit Code - Grundlagen Python

Dieser Blog erklärt die Grundlagen der Programmiersprache Python anhand eines Projektes – ein Programm, mit dem sich Kopfrechnen trainieren lässt. Am Ende dieser Revision kann das Programm Additionsaufgabe mit zwei Zufallszahlen stellen und das Ergebnis bewerten.

Kopfrechnen Version 0.2

Link zum ausführbaren Code auf GitHub: https://github.com/dr-bach/python/blob/main/Kopfrechnen_0_2.ipynb

Grundlagen Python: Kommentare

Zunächst verleihen wir dem Programm etwas Struktur, indem wir die EVA Elemente als Kommentare einfügen.

#aufgabe erstellen
#aufgabe anzeigen
#ergebnis berechnen
#antwort abfragen
#antwort bewerten
#bewertung anzeigen

Ein #Kommentar beginnt mit einem vorangestellten #-Symbol, und die restliche Textzeile kann beispielsweise Erklärungen enthalten, die nicht als Anweisung ausgeführt werden.
Wir ergänzen zunächst nach jedem Kommentar den Programmcode, der dieser Aufgabe entspricht.

Grundlagen Python: Bibliotheken (am Beispiel Zufallszahlen)

Als nächstes benötigen wir für das Programm Zufallszahlen. Diese stehen nicht durch normale Funktionen zur Verfügung, sondern müssen aus einer sogenannten Bibliothek extern hinzugefügt werden.
Die Zufallszahl generieren wir über den Befehl random. Da wir hier eine ganzzahlige Zahl zwischen 1 und 6 erwürfeln wollen, ergänzen wir den Befehl zu random.randint(1, 6).
Wenn man das Programm mehrfach ausführt, wird jedes Mal eine neue Zufallszahl erzeugt (wobei mehrfach hintereinander dieselbe Zahl „ausgewürfelt“ werden kann). Gibt man zusätzlich den Befehl seed ein, erhält man immer dieselbe Reihenfolge von Zufallszahlen.

import random

zufallszahl=random.random() # Kommazahl zwischen 0 und 1
print(f"Die Zufallszahl lautet {zufallszahl}")

zufallszahl=random.randint(1,6) #Ganzzahl zwischen 1 und 6
print(f"Du hast eine {zufallszahl} gewürfelt")

random.seed(0)
zufallszahl=random.randint(1,6)
print(f"Du hast eine {zufallszahl} gewürfelt")

random.seed(0)
seed=random.randint(1,6)
print(f"Du hast, wie beim ersten Wurf, wieder eine {seed} gewürfelt")

Ein möglicher Ablauf könnte wie folgt aussehen

Die Zufallszahl lautet 0.4271508357655378
Du hast eine 6 gewürfelt
Du hast eine 4 gewürfelt
Du hast, wie beim ersten Wurf, wieder eine 4 gewürfelt

Wir denken uns eine Aufgabe aus, indem wir zwei Zahlen zwischen 1 und 5 „würfeln“, die anschließend addiert werden sollen (so wird das Ergebnis höchsten 10 sein).

Grundlagen Python: Verzweigungen

Bisher wurden immer alle Befehle der Reihe nach ausgeführt, die im Programm aufgelistet wurden. Es ist jedoch in vielen Fällen notwendig zu prüfen, ob eine bestimmte Bedingung erfüllt ist (beispielsweise hier, ob eine Antwort korrekt ist) und nur dann die folgenden Befehle auszuführen. Sprachlich könnte man dies als „wenn… dann….“ ausdrücken. Dies wird in Python mit dem Schlüsselwort if gefolgt von der Bedingung und einem Doppelpunkt umgesetzt. Die Bedingung muss einen Wahrheitswert haben, also ein Boolean mit True (Befehle der Verzweigung werden ausgeführt) oder False. Die auszuführenden Befehle werden alle eingerückt, so dass optisch die Verzweigung vom restlichen Programm zu unterscheiden ist.
Um Verwechslungen mit Wertezuweisungen von Variablen zu vermeiden, wird die Prüfung auf Gleichheit mit zwei Gleichheitszeichen geschrieben, Ungleichheit mit Ausrufe- und Gleichheitszeichen.

ergebnis = 3
eingabe = 2

if ergebnis == eingabe:
  print("Eingabe ist richtig")
if ergebnis != eingabe:
  print("Eingabe ist falsch")
Eingabe ist falsch

Nach if kann man auch else verwenden (ohne weitere Bedingung), wodurch alle anderen Fälle erfasst werden.

if ergebnis == eingabe:
  print("Eingabe ist richtig")
else:
  print("Eingabe ist falsch")
Eingabe ist falsch

Man kann Abfragen auch schachteln. Da bei den Abfragen nach einem Wahrheitsgehalt unterschieden wird, benutzen wir im folgenden True und False statt komplizierter Ausdrücke.

if False:
  print("Dieser Text wird nicht angezeigt")
else:
  if True:
    print("Dieser Text wird angezeigt")
  else:
    print("Dieser Text wird auch nicht angezeigt")
Dieser Text wird angezeigt

Außerdem gibt es das Schlüsselwort elif, von dem eins oder mehrere zwischen if und else stehen können und welches wie if eine bestimmte Abfrage übernimmt. Diese werden nacheinander abgefragt, solange nicht eine Bedingung erfüllt ist.

if ergebnis < eingabe:
  if ergebnis == eingabe-1:
    print(eingabe,"ist ein wenig zu groß. Das richtige Ergebnis lautet", ergebnis)
  else:
    print(eingabe,"ist zu groß. Das richtige Ergebnis lautet", ergebnis)
elif ergebnis > eingabe:
  print(eingabe,"ist zu klein. Das richtige Ergebnis lautet", ergebnis)
else:
  print("Die Antwort ist richtig")
4 ist ein wenig zu groß. Das richtige Ergebnis lautet 3

Damit stellen wir nun die zweite Version des Programms fertig.

Code Kopfrechnen 0.2

#aufgabe erstellen
import random
a = random.randint(1, 5)
b = random.randint(1, 5)

#aufgabe anzeigen
print ("Wieviel ist", a, "+", b, "?")

#ergebnis berechnen
ergebnis = a + b

#antwort abfragen
antwort = int(input("Dein Ergebnis = "))

#antwort bewerten
if antwort < ergebnis:
  #bewertung anzeigen
  print(antwort,"ist zu klein. Das richtige Ergebnis lautet", ergebnis)
elif antwort > ergebnis:
  print(antwort,"ist zu groß. Das richtige Ergebnis lautet", ergebnis)
else:
  print("Die Antwort ist richtig")

Ein möglicher Ablauf könnte wie folgt aussehen

Wieviel ist 4 + 1 ?
Dein Ergebnis = 4
4 ist zu klein. Das richtige Ergebnis lautet 5

Die kompletten Grundlagen Python

Kopfrechnen Version 0.1

Additionsaufgabe mit zwei Zahlen stellen

  • Variablen
  • Ausgabe mit print()
  • Eingabe mit input()

Link: https://kiwi-strategie.de/grundlagen-python-1-5/

Kopfrechnen Version 0.2

Additionsaufgabe mit zwei Zufallszahlen stellen und das Ergebnis bewerten

  • Kommentare
  • Bibliotheken einbinden (am Beispiel von random)
  • Verzweigungen mit ifelse und elif

Link: https://kiwi-strategie.de/grundlagen-python-2-5/

Kopfrechnen Version 0.3

Mehrere Additionsaufgaben stellen und falsche Eingabeformate zurückweisen

  • Schleifen mit for und while
  • Fehlerbehandlung

Link: https://kiwi-strategie.de/grundlagen-python-3-5/

Kopfrechnen Version 0.4

Beliebig viele Aufgaben stellen mit abschließender Gesamtbewertung

  • Funktionen (mit Parametern und Rückgabewerten)
  • Programmierstil (PEP, Zen of Python)

Link: https://kiwi-strategie.de/grundlagen-python-4-5/

Kopfrechnen Version 1.0

Weitere Aufgabetypen abfragen sowie Spielstand laden und speichern

  • komplexere Datenstrukturen (Listen und Dictionaries)
  • externe Daten lesen und schreiben

Link: https://kiwi-strategie.de/grundlagen-python-5-5/

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert