2017-08-29 51 views
0

我想弄清楚我的代碼有什麼問題。 我試圖讓計算機洗牌列表,直到它匹配A和B.在python中的洗牌數字數據比較

from math import floor 
import random 

count = 0; 
a = '1 2 3'.split() 
b = '3 2 1'.split() 

def shuffler(x,y): 
    random.shuffle(x) 
    random.shuffle(y) 

def compare_deck(x,y): 
    if x == y: 
     return False 
    else: 
     return True 

while True: 
    shuffler(a,b) 
    compare_deck(a,b) 
    count += 1 
    continue 

else: 
    print('It took {} times of shuffle to be the same 
    arrangement.'.format(count)) 
+2

如果你不打算使用結果,爲什麼還要打電話給'compare_deck()'? – jasonharper

+0

@downshift'count + = 1'應該每次迭代運行,問題是這是一個無限循環,因爲沒有辦法擺脫它。約書亞:你是如何期望你的循環終止?而且,最後的「繼續」完全沒有意義。 –

回答

0

,因爲你沒有使用從compare_deck結果while循環是一個無限循環。當compare_deck返回True,要退出循環,所以,你同時變得像:

while True: 
    shuffler(a,b) 
    count += 1 
    if compare_deck(a,b): 
     break 

我也抹去了continue,因爲它是多餘的。