2013-10-24 53 views
0

所以我的代碼當前生成一個隨機整數在1到200之間的集合。它通過使用while循環向集合中添加值來實現此目的。我遇到的麻煩是比較一組中的值,看看是否有兩個值是重複的。如果是,我想返回一個bool值或一個實際的打印語句,表明它們是重複的。同樣,我會想停止,如果重複進行這種比較集合中的值

def abc(c): 
    a = 1 
    my = set() 
    while a <= c: 
     b = randrange(1, 200) 
     my.add(b) 
     a = a + 1 
    print(my) 
+0

你加入1之間的隨機整數和366,而不是200. –

+0

這是一組 - 沒有重複的值。 –

回答

2

測試成員中發現in生成一組:

while a <= c: 
    b = randrange(1, 200) 
    if b in my: 
     print('Duplicate random value generated') 
    my.add(b) 
    a = a + 1 

注意,你可以使用一個for循環與range()調用,而不是一個while循環這裏,循環的c時間:

for i in range(c): 
    b = randrange(1, 200) 
    if b in my: 
     print('Duplicate random value generated') 
    my.add(b) 
+0

我得到的錯誤集對象不可調用。另外如果我在打印語句之後添加一箇中斷,它會停止while循環嗎?沒關係,找到了解決我的問題的方法。我必須等待批准這個答案。 – user2908101

+0

@ user2908101:一個'break'會停止循環,是的。什麼代碼引發了'set object not callable'錯誤?我的代碼中唯一被調用的名字是print()和randrange(),再加上我的第二個例子中的range()。您是否意外重新綁定了代碼中的其中一個名稱? –

+0

這個問題叫我的()這也導致了這個錯誤 – user2908101