2017-08-29 21 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,因为它是多余的。