我正在阅读 Jeff Knupp 的博客,发现了这个简单的小脚本:
import math
def is_prime(n):
if n > 1:
if n == 2:
return True
if n % 2 == 0:
return False
for current in range(3, int(math.sqrt(n) + 1), 2):
if n % current == 0:
return False
return True
return False
print(is_prime(17))
(注意:我在开头添加了导入数学。您可以在此处查看原文:http: //www.jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained / )
这一切都非常简单,我得到了大部分,但我不确定他使用 range 函数发生了什么。我从来没有以这种方式使用过它,也没有见过其他人以这种方式使用它,但是我是初学者。range 函数具有三个参数意味着什么,以及如何完成素数测试?
另外(如果这是一个愚蠢的问题,请道歉),但最后一个'return False'声明。就是这样,如果将一个数字传递给小于一的函数(因此不能是素数),该函数甚至不会浪费时间评估该数字,对吗?