2015-09-15 4 views
5

Bisher, was ich habe, istWie erzeuge ich nicht wiederholende Zufallszahlen in einer While-Schleife? (Python 3)

import random 
def go(): 
    rounds = 0 
    while rounds < 5: 
     number = random.randint(1, 5) 
     if number == 1: 
      print('a') 
     elif number == 2: 
      print('b') 
     elif number == 3: 
      print('c') 
     elif number == 4: 
      print('d') 
     elif number == 5: 
      print('e') 
     rounds = rounds + 1 
go() 

und die Ausgabe endet Wesen etwas entlang der Linien von

e 
e 
c 
b 
e 

Wie mache ich es so eine Zahl nur einmal verwendet wird und die Buchstaben wiederholen sich nicht? (ex. So etwas wie)

a 
e 
b 
c 
d 

Vielen Dank im Voraus

+3

Sie können versuchen, 'random.sample ("ABCDE", 5)' [Zufallsbibliothek Python 3] (https://docs.python.org/3.0/library/random.html) –

+1

Ihren spezifischen Code Beispiel schlägt vor, dass Sie wollen, L = list ("abcde"); random.shuffle (L) ', also eine zufällige Permutation von Buchstaben" abcde "erhalten. – jfs

Antwort

9

Die random.sample(population, k) Methode gibt eine Probe von eindeutigen Werten aus der angegebenen Population der Länge k.

r = random.sample("abcde", 5) 
for element in r: 
    print(element) 
+0

okay, das funktioniert, danke! – zeurosis

+0

@zeurosis wenn es für Sie funktioniert, wählen Sie es bitte als die angenommene Antwort – asdf

+0

Entschuldigung, wie mache ich das? Ich habe diese Website nicht viel verwendet – zeurosis

Verwandte Themen