Zur Nutzung von Befehlen im Zusammenhang mit Zufallswerten muss das random-Modul (bzw. zumindest die daraus benutzten Methoden) importiert werden.
Es gibt – wie immer beim Import von Modulen – zwei Varianten.
Mit import random wird das Modul importiert.
Die Methoden des Moduls können danach mit Punktsyntax (random.methodenname()) verwendet werden. Beispielsweise liefert random.randint(untereGrenze, obereGrenze) eine ganze Zufallszahl zwischen den beiden Grenzen (inklusive Grenzen).
import random
print(random.randint(2,4)) # eine der Zahlen 2, 3 oder 4 ausgeben
print(random.randrange(3, 9, 2)) # eine der Zahlen 3, 5, 7 (d.h. eine aus dem Bereich 3 bis ohne 9 mit Abstand 2) ausgeben
z = random.random() # eine gebrochene Zahl zwischen 0 und 1 in der Variablen z speichern
Hinweis: Die verfügbaren Methoden können mit print(dir(random)) aufgelistet werden.
Mit from random import methodenname wird eine einzelne Methode des Moduls importiert.
Danach kann man diese Methode direkt (also ohne random.) verwenden.
from random import randint, random # die Methoden randint und random importieren
print(randint(2,4)) # eine der Zahlen 2, 3 oder 4 ausgeben
print(randrange(3, 9, 2)) # liefert einen Fehler, da diese Methode nicht importiert wurde
z = random() # eine gebrochene Zahl zwischen 0 und 1 in der Variablen z speichern
Möchte man alle Methoden des Moduls auf diese Art verfügbar machen, so geht das mit Hilfe von from random import * - das * steht hier für alle.
Achtung: Das ist kurz und praktisch, jedoch werden vorher importierte Methoden gleichen Namens dann ggf. überschrieben.
Direkt:
import random
liste = ['Adam', 'Bob', 'Clara', 'Debbie']
print(random.choice(liste))
Via zufällige Wahl des Index:
from random import randrange
liste = ['Adam', 'Bob', 'Clara', 'Debbie']
zufallsIndex = randrange(len(liste)) # Ganzzahl von 0 bis len(liste)-1
print(liste[zufallsIndex])
Falls nie zwei gleiche Listenelemente nacheinander ausgewält werden dürfen:
from random import randrange
liste = ['Adam', 'Bob', 'Clara', 'Debbie']
zufallsIndex = randrange(len(liste))
for i in range(6):
verschiebung = randrange(1,len(liste))
zufallsIndex = (zufallsIndex + verschiebung ) % len(liste)
print(liste[zufallsIndex])