为什么Python在这里打印出多个值?

时间:2016-08-05 05:40:42

标签: python

我正在编写这个函数来测试数字的素数,我知道它不是最好的代码但我希望它打印出 Not prime 当一个数字不是素数且当数字为素数时,为素数。问题是它打印出 Not prime 然后是素数表示非素数的数字... 例如这段代码:

def isPrime(n):
  for i in range(2, n):
    if n%i==0:
        print "Not Prime!"
        break
  print "Is Prime"

isPrime(5)
isPrime(18)
isPrime(11)

打印出来。

Is Prime
Not Prime!
Is Prime
Is Prime

帮帮我,我该怎么办?我是初学者。

2 个答案:

答案 0 :(得分:1)

函数中不存在

break - 它只是退出循环。因此,只要您打印“Not prime”,就会退出循环并继续下一个打印语句。

使用关键字break替换returnreturn将立即退出该函数,返回您为return语句提供的值,如果您只是None旁边没有值,则会return

答案 1 :(得分:1)

这是一个修复程序(python 3)


def isPrime(n):
  prime = True
  for i in range(2, n):
    if n%i==0:
        print("Not Prime!")
        prime = False
        break
  if prime:
      print("Is Prime") 

isPrime(5)
isPrime(18)
isPrime(11)

您发布的代码中的问题是始终执行最后一个print