#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 взгляните на последний параметр.