这两个程序有什么区别

时间:2016-10-21 15:12:49

标签: python if-statement for-loop 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

此程序打印最多为n的素数 出局是

输入数字: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

out put是

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

  
    
      

    
  

2 个答案:

答案 0 :(得分: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
如果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

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

有关for else工作原理的更多信息:

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

for x in range(10):
    print x
else:
    print "hello world"

以此为例。打印出来:

0
1
2
3
4
5
6
7
8
9
hello world 

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

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

答案 1 :(得分:-1)

它们是相同的

import { AppComponent } from './app.component';
import {AppRoutingModule} from './app-routing.module';
import {AuthGuard} from './auth-gaurd.service';

import { AnotherPageComponent } from './another-page/another-page.component';
import { LoginPageComponent } from './login-page/login-page.component';

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    JsonpModule,
    AppRoutingModule,
    HttpModule
  ],
  declarations: [
    AppComponent,
    LoginPageComponent,
    AnotherPageComponent
  ],
  providers: [AuthGuard],
  bootstrap: [AppComponent]
})

export class AppModule { }