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

2024-04-24 16:17:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我写这个函数是为了测试数字的素数性,我知道这不是最好的代码,但我希望它打印出非素数当一个数字不是素数时,是素数当一个数字是素数时。问题是它打印出非素数然后是素数对于非素数的数字。。。 例如,此代码:

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

帮帮我,我该怎么办?我是个初学者。你知道吗


Tags: 函数代码inforifisdefnot
2条回答

break不存在于函数之外,它只是退出一个循环。因此,一旦打印出“Not prime”,就退出循环并转到下一个print语句。你知道吗

break替换为关键字returnreturn将立即退出函数,返回您在return语句中给出的值,或者None如果您只是将return放在没有值的旁边。你知道吗

下面是一个补丁(python3)


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。你知道吗

相关问题 更多 >