Python 为什么';内部循环是否每次都递增?

Python 为什么';内部循环是否每次都递增?,python,Python,我是一个新的编程者,仍然对逻辑感到困惑。我为你们设计的代码是有效的:它产生前N个素数。i、 e.如果用户输入10,则代码将生成10以下的所有素数。顺便说一下,这是一个作业问题。我的教授就是这样说的 另外,如果我没有正确显示代码,请给我一些有用的提示。我不知道什么是栅栏,但如果有帮助的话,我把每行缩进了4个空格 我在调试模式下逐步完成了这段代码,并注意到j的值从未超过2或3。为什么不呢 n = int(input("Please enter the number up to which you w

我是一个新的编程者,仍然对逻辑感到困惑。我为你们设计的代码是有效的:它产生前N个素数。i、 e.如果用户输入10,则代码将生成10以下的所有素数。顺便说一下,这是一个作业问题。我的教授就是这样说的

另外,如果我没有正确显示代码,请给我一些有用的提示。我不知道什么是栅栏,但如果有帮助的话,我把每行缩进了4个空格

我在调试模式下逐步完成了这段代码,并注意到j的值从未超过2或3。为什么不呢

n = int(input("Please enter the number up to which you want to find prime 
numbers: "))
count = 0  

if n > 1:
    for i in range(2, n + 1):
        isPrime = True  # set flag to True
        for j in range(2, i // 2 + 1):
            if i % j == 0:
                isPrime = False
                break

        if isPrime:
            print(i, "is a prime number.")
            count += 1
else:
    print("Prime numbers must be greater than 1.")

print(count, "prime numbers have been found.")

没有我可以检测到的错误消息。

对于在调试器中运行的代码,
I
的值是多少
j
永远不会高于
i//2
。尝试使用n=11,您将看到j变得更大。n越大,j越大。当你运行这个算法时,
j
将达到的最大值是
p//2
,其中
p
是最大的素数
我尝试了你的代码输入100。我得到的最大
j
是48。谢谢大家,这显然是我做得不对的。我只试了10次,每次我的导师。再多想象一点,我就可以解决这个问题了。哈哈,我需要一只橡皮鸭。