2013-10-24 158 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