Как использовать переменную для поиска другой переменной в списке — python

#python #python-3.x

#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:

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
  

Комментарии:

1. Спасибо, теперь он печатает только «1», есть ли какое-либо исправление для этого?

2. @LokiH взгляните на последний параметр.