使变量彼此不相等

时间:2015-07-10 08:33:26

标签: python variables

我目前正在制作一个代码,其功能是制作一个2D数组,其中填充的函数计算x中值range (1,10)的倍数。

def find_multiples (twolist, count) : 

    n = random.randrange(1,10)

    for i in range(count) :
        for j in range(count) :
            x = random.randrange(0,101,n)
            twolist[i][j] = x

下一部分是随机输入一个值" y"这与阵列中随机位置的x不同。

y = random.randrange(0,101)
a = random.randrange(count)
b = random.randrange(count)
twolist[a][b] = y
return twolist, y

我的问题是,如何使x与x的值不同?我想也许我必须制作一个单独定义的函数,用于检查y是否不是n的倍数,但我不太确定如何说出它。

def check_diffmult (numx , numy) :

    for i in range(1,numx) :
        if numy = random.randrange(0,101,i) :

到目前为止,这是我的尝试,但我知道它已经关闭了。

编辑:感谢您的回复!到目前为止,除此之外,代码还有很多其他内容。总体目标是存在随机整数y,其与通过函数的n的倍数是不同的模式。不确定这是否足以让事情变得清晰起来!此外,我进一步阅读了一个答案,即y和x + 1一样简单,但是我在通过简单地加或减来改变y的值时犹豫不决,因为y可能会偶然成为随机选择的倍数之一价值" n"。

编辑2:

def check_diffmult (numx , numy) :
check_list = []
check_list.append(numx)
if numy == check_list :
    return 0
return 1

def find_multiples(twolist,count):

n = random.randrange(1,10)
for i in range(count) :
    for j in range(count) :
        x = random.randrange(0,101,n)
        twolist[i][j] = x

while True :

    y = random.randrange(0,101)
    check = check_list(x,y)
    if check == 1 :
        a = random.randrange(count)
        b = random.randrange(count)

        twolist[a][b] = y
        break

return twolist, y

将代码更改为此以使y!= x。这可能是一个可行的代码吗?

1 个答案:

答案 0 :(得分:1)

如下:

x, y = random.sample(range(0, 101, n), 2)

引用docs

  

random.sample(population, k)

     

返回从总体序列或集合中选择的 k 长度唯一元素列表。用于无需更换的随机抽样。 [...]

     

要从一系列整数中选择样本,请使用range()个对象作为参数。

(如果您使用的是Python 2,则可能需要使用xrange()。)