Das Python-System soll würfeln!
Unser Computer sollte eigentlich immer genau das machen, was wir sagen. Und er sollte auch - unabhängig von der Tageszeit, vom Wetter, von dem Raum, in dem er steht - bei gleicher Eingabe auch identische Ausgaben erzeugen. Man sagt, dass ein Computerprogramm sich deterministisch (= vorher bestimmbar) verhält.
Doch ein Würfel zeigt natürlich nicht immer dieselbe Augenzahl. Also kann ein Computer eigentlich nicht würfeln.
Jedoch haben die Entwickler von Python einen Weg gefunden, wie man mit einem Python-Befehl Zufallszahlen erzeugen kann, so dass bei jedem Aufruf dieses Befehls ein anderer (nicht vorhersehbarer) Wert erscheint.
Wichtig ist, dass wir auch die Pseudozufallszahlen nicht vorhersagen können, und dass sie sich über den Wertebereich genauso gleichmäßig verteilen wie echte Zufallszahlen.
Um Pseudozufallszahlen zu erzeugen, muss man in einem Python-Programm einen sog. Modul importieren.
Module werden verwendet, um den Code eines umfangreicheren Software-Projekts verwenden zu können, ohne diesen Coode in die eigene Python-Datei (z.B. durch Kopieren oder Abtippen) schreiben zu müssen.
Es gibt im Python-System sehr viele solcher Module, die nur nutzbar sind, wenn man sie mit einem Import-Befehl geladen hat. Dazu gibt es zwei Möglichkeiten:
- Man importiert das gesamte Modul.
- Dazu benutzt man die Code-Zeile import modName, wenn modName der Name des Modul ist.
- Dann kann man alle in dem Modul modName verfügbaren Anweisungen benutzen:
- Wenn z.B. die Anweisung tueWas() in dem Modul existiert, kann man sie in der Form modName.tueWas() im eigenen Programm nutzen.
- Man importiert nur einige der in dem Modul vorhandenen Anweisungen.
- Wenn man also z.B. mit den obigen Bezeichnungen lediglich die Anweisung tueWas() nutzen möchte, kann man den Import mittels from modName import tueWas angeben. Dann steht in dem eigenen Programm die Zeile tueWas().
Das folgende Codeschnipsel in Python simuliert jetzt einen 6-seitigen Würfel:
import random
augenzahl = random.randint(1,6)
print("Geworfen =", augenzahl)
Wie man sieht:
werden immer andere Zahlen von dem Pseudozufallsgenerator erzeugt.
Man kann alternativ jedoch auch nur die benötigte(n) Anweisung(en) importieren, so dass der Code dann wie folgt aussieht:
from random import randint
augenzahl = randint(1,6)
print("Geworfen =", augenzahl)
Die Python-Anweisung
random.randint(untergrenze, obergrenze)
erzeugt eine Zufallszahl aus dem Bereich [untergrenze, obergrenze]. Die erzeugten Zahlen sind für den Benutzer nicht vorhersagbar und in dem angegebenen Bereich zufällig verteilt.
![]() |
|
Python kennt auch andere Zufallswerte
Betrachten wir einmal den folgenden Zeitschriftenauszug:
... Der Basketballprofi Shaquille O’Neal erzielte in der 2002/2003-Saison mit 62 Prozent den besten Wert seiner Karriere, das heißt, er verwandelte 62 Prozent seiner Freiwürfe und verwarf 38 Prozent. ...
Jetzt steht Shaquille auf der Abwurflinie. Wird er den Freiwurf verwandeln?
Wir benutzen jetzt Python, um das Ergebnis zu simulieren. Dazu nutzen wir einmal mehr das Modul random, in dem es eine Anweisung mit dem Namen random() gibt
Die Python-Anweisung
random.random()
liefert eine Dezimalzahl aus dem Bereich [0, 1).
Um jetzt den Freiwurf bei dem beschriebenen Basketball-Spiel zu simulieren, können wir uns den Wert mit Hilfe dieser Anweisung anzeigen lassen. Ist dieser Wert kleiner oder gleich 0.62, wird der Wurf verwandelt. Probiere es in deiner Python-Umgebung aus.
![]() |
Im letzen Jahr haben von den 880 Schülerinnen und Schülern deiner Schule 871 die Abiturprüfung bestanden. Schreibe ein kleines Python-Programm, das diese Situation simuliert. |