如何使用变量在列表中查找另一个变量 - python

时间:2016-10-18 19:36:40

标签: python python-3.x

(Python 3.x)

z=[]
x=0
while 1==1:
    x=x+1
    y=1
    z.append(x)
    while y==1:
        a = 0
        b = 0
        if z(a)==x:
            print(x)
            y = 2
        elif x%z(a)!= 0:
            a = a+1
        elif b == 2:
            y = 2
        else:
            b = b+1

所以,我创建了一个代码来查找所有素数,直到python崩溃。但是,它依赖于z(a)才能工作。这个想法是,当“a”发生变化时,它会在列表中移动。

“z(a)”是错误的所在,所以有人知道解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:0)

z是一个列表。您可以使用z[a]运算符来索引其中的值(而不是z(a),它假定函数调用a作为参数)。

我冒昧地使用boolean variables+=运算符并解压缩值:

z = []
x = 0
while True:
    x += 1
    y = True
    z.append(x)
    while y:
        a, b = 0, 0
        if z[a] == x:
            print(x)
            y = False
        elif x % z[a]: a += 1
        elif b == 2: y = False
        else: b += 1

我相信你想要实现的目标(无限递增素数发生器):

def prime (n): return not any([n % i == 0 for i in range(2, n)])
x = 0
while True:
    if prime(x): print(x)
    x += 1