Python素数生成器

Python素数生成器,python,generator,primes,Python,Generator,Primes,是的,我知道有很多这样的问题,我的问题可能已经在我没有见过的地方得到了回答。然而,我仍然有困难,不确定该怎么办 maximum_range = int(input('How big do you want the range?')); i = 3; checkPrime = True; while (i <= maximum_range): y = 2; print('i {}'.format(i)) print('y {}'.format(y)) half

是的,我知道有很多这样的问题,我的问题可能已经在我没有见过的地方得到了回答。然而,我仍然有困难,不确定该怎么办

maximum_range = int(input('How big do you want the range?'));
i = 3;
checkPrime = True;
while (i <= maximum_range):
    y = 2;
    print('i {}'.format(i))
    print('y {}'.format(y))
    halfI = int((i/2)+ 1)
    checkPrime = False;
    while (y <= halfI & checkPrime):
        y += 1
        if (i%y == 0):
            print('{} is not prime because it is divisible by' .format(i))
            checkPrime = False;
    i += 2
    if (checkPrime & y == halfI):
        print('{}s is prime' .format(i))   
    checkPrime = True;
maximum_range=int(输入('您希望范围有多大?);
i=3;
checkPrime=True;

而(i您不了解python的运算符:

正如这里指出的:

运算符&生成其参数的按位AND,这些参数必须是整数

您应该使用的是“and”逻辑运算符

您应该关心的另一件事是运算符优先级:


关于代码的逻辑,只要你发现了新的素数,你就可以用它们来除法(执行模运算)更快(步骤更少),因为每个数字都可以分解成素因子积。我不给你举个例子,因为我不知道你想要实现什么,如果你举个例子,说明你需要什么,我可以做到。

你没有说困难是什么,你没有问过问题,你没有描述它如何不令人满意。你试过吗将变量、比较结果和其他事情放置在战略位置,以查看可能发生的情况?您遇到的困难到底是什么?这段代码有效吗?或者您希望它产生其他东西吗?Python不需要在语句末尾使用分号,Python编码员在阅读时可能会发现这很烦人,并且会让您感到厌烦我将它们随机分散在语句的子集上。这是一个风格注释,不是你的问题。欢迎使用,请花时间阅读该页面上的其他链接。因为你的问题有点过于宽泛。请关注你的代码可能出现错误的一种方式,并就此进行询问。如果你找到了该问题的解决方案,并且还是一个问题,试着找出它,然后问一个新的问题。如前所述,您的内部循环永远不会运行-该循环的比较行为是否与您认为的t一样?看起来您试图通过只搜索一半的搜索空间来优化(使用
halfI
)也许可以简化并删除所有的逻辑,看看它是否能工作,用
最大\u范围
的小值进行测试。