两个函数的逻辑与

2024-04-26 03:51:06 发布

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

这可能是一个愚蠢的问题,但我在谷歌没有任何运气。我有两个函数,它们的输入和输出是布尔的。我想把它们结合起来形成一个新的函数。例如,如果我的函数是xy

def x(input): return input%3==0 
def y(input): return input%5==0 
answer = lambda z: x(z) and y(z)

我可以这样做,但有没有一个内在的方法来做呢?我试过answer = x and z,但没用。你知道吗


Tags: and方法lambda函数answerinputreturndef
1条回答
网友
1楼 · 发布于 2024-04-26 03:51:06

两件事。你知道吗

  1. 除非显式返回函数中的值,否则默认情况下它将返回None。所以,你的xy应该是这样的

    def x(data):
        return True if data%3==0 else False
    def y(data):
        return True if data%5==0 else False
    

    更简单的是

    def x(data):
        return data % 3 == 0
    def y(data):
        return data % 5 == 0
    
  2. 然后你可以像这样使用^{}函数

    print all(function(data) for function in (x, y))
    

    现在,all只在所有函数都返回Truthy值时才返回Truthy。

相关问题 更多 >