在Python中返回比较

时间:2014-01-27 16:26:06

标签: python boolean return-value primes

我有这段代码:

def isPrime(nr):
    """
    Verify if a number is prime
    nr - integer number, nr>1
    return True if nr is prime, False otherwise
    """
    div = 2 #search for divider starting from 2
    while div<nr and nr % div>0:
        div=div+1
    #if the first divider is the number itself 
    #then the number is prime
    return div>=nr

这不是我写的,所以我试图理解算法是如何工作的,显然它正在使用一种形式的鸿沟和分数。征服。

我不明白的是最后一行:

return div>=nr

3 个答案:

答案 0 :(得分:3)

return div>=nr

......等同于......

if div >= nr:
    return True
else:
    return False

也就是说,它不是“返回比较”而是返回比较的结果

答案 1 :(得分:0)

该算法只测试从2到nr的每个数字,以测试nr是否可以被数字整除。如果在任何时候(nr % div等于0),则循环中断。如果div < nr,这将返回False。如果循环到达nr,那么我们知道2和nr之间没有分隔nr的数字,所以它是素数,返回True。另一个答案解释了返回的工作原理。

绝对不使用分频&amp;征服。

答案 2 :(得分:0)

Python带有一个交互式环境,您可以在其中试验您发布的简单脚本。

$ python                           # From the command line just run 'python'.

>>> nr = 13                        # Type in some code.
>>> div = 2
>>> while div<nr and nr % div>0:
...   div=div+1
...                                # Press 'Enter' here to end the indentation.
>>> div                            # Type a variable to see what it equals.
13
>>> nr                             # Again.
13
>>> div>=nr                        # Ahhh, the answer to your question.
True
>>>