Python For循环获取素数

Python For循环获取素数,python,for-loop,Python,For Loop,我刚开始学习Python,所以我的知识水平相当高 无论如何,我在网上找到了这个例子: for num in range(10,20): #to iterate between 10 to 20 for i in range(2,num): #to iterate on the factors of the number if num%i == 0: #to determine the first factor j=num/i

我刚开始学习Python,所以我的知识水平相当高

无论如何,我在网上找到了这个例子:

for num in range(10,20):     #to iterate between 10 to 20
   for i in range(2,num):    #to iterate on the factors of the number
      if num%i == 0:         #to determine the first factor
         j=num/i             #to calculate the second factor
         print(f"{num} equals {i} * {j}")
         break #to move to the next number, the #first FOR
   else:                  # else part of the loop
       print(f"{num} is a prime number")
       break
下面是示例的结果:

10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number
不幸的是,在Jupyter上运行该代码会返回:

10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 is a prime number  ### THIS IS THE ERROR
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number

我真的找不到这里的错误,有什么建议吗?

我想你的尝试是错误的

用于范围(10,20)中的num:
对于范围内的i(2,num):
如果num%i==0:
j=num/i
打印(f“{num}等于{i}*{j}”)
打破
其他:
print(f“{num}是一个素数”)
打破
而正确的代码必须是

用于范围(10,20)中的num:
对于范围内的i(2,num):
如果num%i==0:
j=num/i
打印(f“{num}等于{i}*{j}”)
打破
其他:
print(f“{num}是一个素数”)
注意(i)else子句的缩进级别不同,以及(ii)没有第二个
中断
。您可能希望在python中更加小心缩进


这里,
else
属于
for
,而不是
if
(这种区别是通过缩进实现的)。对于这一点,可能会有所帮助。总之,
用于。。。else
的行为如下:一旦
for
循环结束,执行
else
部分,除非循环被
中断
终止,最后一个
中断
未对齐,您打算在下面缩进哪个
?现在是学习和逐步查看代码并观察每行代码的功能的好时机。通过将这些中间结果与预期结果进行比较,确定您的计划与您的预期不同之处。从那往后退,缩小问题的原因。我简直不敢相信!我试了很多次,我所要做的就是把休息时间移到另一个位置:和第二个位置相同。谢谢!