2017-09-26 70 views
-2

這是我到目前爲止的代碼:如何檢查是否重複使用隨機模塊打印的內容?

import random 

words = ['a', 'b', 'c'] 
def abc(): 
    print(random.choice(words)) 
    input('Press Enter to Continue') 
    abc() 
abc() 

我怎樣才能使它所以每次打印從列表words一個字的時候,它會檢查是否已經重複之前呢?我希望答案是在沒有模塊的python或random模塊中。

+2

你爲什麼要這麼做?如果你的目標是按照隨機順序打印一次,使用'random.shuffle()'。如果你真的想要,你可以使用'set'來跟蹤你打印的內容。 –

+1

這聽起來好像你想* shuffle *'words'來代替,然後只是遍歷隨機順序。這樣你就不會重複同一個詞。 –

+3

我建議你寫一個適當的循環,而不是在其內部調用'abc'。 – khelwood

回答

1

正如@John指出的那樣,只需使用random.shuffle即可。

random.shuffle(x[, random])

洗牌序列x到位。 可選參數random是一個0參數函數,它在[0.0,1.0)中返回一個隨機值 float;默認情況下,這是函數random()。

random.shuffle(words) 

print(words) 

#loop 
for word in words: 
     print(word) 

會給:

IN : words = ['a', 'b', 'c'] 
OUT : ['c', 'a', 'b']       #This is random 

注1:優勢利用shuffle的是,有沒有得到相同的元素兩倍的你的風險。

注意2:請小心,因爲使用shuffle會影響您存儲數據的原始變量。如果您想保留原始序列,我建議您將數據複製到另一個變量中,並使用shuffle中的數據。

相關問題