这两个程序有什么区别

klo*_*loe -4 python for-loop if-statement break

b=input("Enter number : ")
for n in range(2, b+1):
     for x in range(2, n):
         if n % x == 0:
              break
     else:
          print n
Run Code Online (Sandbox Code Playgroud)

该程序打印的素数最多为n out put is

输入数字:10
2
3
5
7

b=input("Enter number : ")
for n in range(2, b+1):
     for x in range(2, n):
         if n % x == 0:
              break
         else:
              print n
Run Code Online (Sandbox Code Playgroud)

out put是

输入数字:10
3
5
5
5
7
7
7
7
7
9

Moo*_*awr 5

b=input("Enter number : ")
for n in range(2, b+1):
     for x in range(2, n):
         if n % x == 0:
              break
     else:
          print n
Run Code Online (Sandbox Code Playgroud)

打印出来,n如果n % x没有剩余,只有第一个正确的值,因为它爆发.


b=input("Enter number : ")
for n in range(2, b+1):
     for x in range(2, n):
         if n % x == 0:
              break
         else:
              print n
Run Code Online (Sandbox Code Playgroud)

打印出每个n具有非零余数的值,直到出现第一个零余数.


更多关于如何for else工作:

for else将运行for循环,然后在for循环结束后立即运行else.在您的情况下,for循环在某个点结束,然后在结束时打印结果值.

for x in range(10):
    print x
else:
    print "hello world"
Run Code Online (Sandbox Code Playgroud)

以此为例.打印出来:

0
1
2
3
4
5
6
7
8
9
hello world 
Run Code Online (Sandbox Code Playgroud)

为什么这有用?那么你的程序给出了一个非常好的例子.我们想要退出for循环以获得通过的某个条件,然后在我们找到该条件后执行某些操作(如果我们找到了传递条件,则我们只是运行它).因此,如果在for循环中满足条件,则运行this,或者始终在for循环结束时运行它.


回到你的问题,基本上第一个找到给定数字的因子,第二个找到给定数字的非因子.