2015-09-15 11 views
5

Finora quello che ho èCome posso generare numeri casuali non ripetuti in un ciclo while? (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() 

e l'uscita finisce esseri qualcosa sulla falsariga di

e 
e 
c 
b 
e 

Come faccio a fare in modo che un numero viene utilizzato una sola volta e le lettere non si ripetono? (es. Qualcosa di simile)

a 
e 
b 
c 
d 

Grazie in anticipo

+3

si può provare 'random.sample (, 5 "ABCDE")' [biblioteca casuale Python 3] (https://docs.python.org/3.0/library/random.html) –

+1

tuo codice specifico esempio suggerisce di volere 'L = list (" abcde "); random.shuffle (L) 'cioè, ottieni una permutazione casuale di' 'abcde '' lettere. – jfs

risposta

9

Il metodo random.sample(population, k) restituisce un campione di valori unici della popolazione specificato di lunghezza k.

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

okay, funziona grazie! – zeurosis

+0

@zeurosis se ha funzionato per te selezionalo come risposta accettata – asdf

+0

scusa come faccio? Non ho usato molto questo sito web – zeurosis

Problemi correlati