python - python 中函数的功能以及检查是否为真

标签 python

好吧,我编写了一个程序,用两种不同的方法检查素数。我还编写了一个程序来计算函数在给定数字下找到的素数的数量。我稍后也会比较这些并发现%差异。但是,我很好奇是否有一种方法可以让素数计数器代码将两个不同的素数检查器作为变量,这样我就不必为每个方法编写两个单独的计数器。我怎样才能做出这样的东西?

代码是这样的

def primsqr(x):
    if x>1:
        for i in range(2, int(x ** 0.5) + 1):
            if x % i == 0:
                break
                return False
        else:
            return True
def primeferm(x):
    if x>1:
        if pow(2, (x-1), mod=x) == 1:
            return True
        else:
            return False

def counter():
    primeamount = 0
    for i in range(3000001):
        if primsqr(i) == True:
            primeamount +=1
    return primeamount

#And then an identical one for the other prime checker and the comparison blablabla
#This is also pseudocode

我是否可以创建一个通用函数来计算一个数字下的素数,而不是将最后一个写两次?也许可以将质数检查器作为参数并生成通用函数?

最佳答案

您可以传递要用作参数的函数。

def counter(prime_checker):
    primeamount = 0
    for i in range(3000001):
        if prime_checker(i) == True:
            primeamount +=1
    return primeamount

counter(primsqr)

关于python - python 中函数的功能以及检查是否为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66162314/

相关文章:

Python 窗口打开和关闭

python - 使用日期时间索引提高 Pandas read_csv 的速度

python - 我如何打印/返回文件中的行数

python - 导入库问题 - "ImportError: No Module named ____"

python - 使用 Python 进行热重载/交换

python - pandas 将数据帧转换为数据透视表,其中索引是排序值

python - 正则表达式在两个字符串之间的字符串时不匹配

Python:动态存储字典的访问

python - 在 VPython 中创建一个面孔?

Python 类型错误 : not enough arguments for format string