为什么当我在 for 循环中使用 else 时 9 是质数。但是当我在 for 循环 9 之外使用 else 时,合数 [closed]

Why 9 is prime number when I use else in for loop. But when I use else outside of for loop 9 is composite number [closed]

提问人:Kishor Jawale 提问时间:11/15/2023 最后编辑:Kishor Jawale 更新时间:11/15/2023 访问量:29

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

5天前关闭。

此代码用于验证输入数字是素数还是复合数。当我在 for 循环中使用 else 并输入 9、15、33 等数字时,...是素数的倍数变成 3,它说素数。

但是当我在for循环之外使用else时,它说复合是正确的。

那么你能告诉我为什么会这样吗?

当 ELSE 在 FOR 循环中时编码:

n=int(input('Enter a number: '))

for i in range (2, n):
    if(n%i==0):
      print('composite')
      break  
    else:
      print('prime')
      break

当 else 在 for 循环之外时编写代码:

n=int(input('Enter a number: '))

for i in range (2, n):
    if(n%i==0):
      print('composite')
      break  
else:
  print('prime')

我在下面附上屏幕截图:

内部 for 循环

外部 for 循环

我尝试遵循代码 Froom,我偶然发现了这种情况......

n=int(input('Enter a number: '))

for i in range (2, n):
    if(n%i==0):
        com=1
        break
if com==1:
     print('composite')
else:
        print('prime')

 
python-3.x for-循环

评论

0赞 Solar Mike 11/15/2023
查看 stackoverflow.com/q/25756184/4961700
0赞 gre_gor 11/15/2023
这回答了你的问题吗?为什么 python 在 for 和 while 循环之后使用“else”?
0赞 gre_gor 11/15/2023
如果你做过任何调试,你会注意到,你的for循环每次只做一次迭代。

答: 暂无答案