我最近的测试中有这个问题:
有两只狼,a和b,以及参数a_howl和b_howl 表明每个人是否嚎叫。如果两者兼而有之,我们就会遇到麻烦 嚎叫,或者他们俩都没有嚎叫。如果我们进来,则返回True 麻烦。
wolf_trouble(True,True)→True
wolf_trouble(False,False)→True
wolf_trouble(True,False)→False
我的代码如下所示,在提交之前,我测试过它在所有三个条件下都有效。
def wolf_trouble(a_howl, b_howl):
if a_howl == True & b_howl == True:
return True
elif a_howl == False & b_howl == False:
return True
else:
return False
然而,有一个额外的测试条件没有被提及,因此,我只获得了部分功劳。 :
wolf_trouble(False,True)→False
当我运行我的代码时,wolf_trouble(False,True)返回True,我试图理解为什么。由于我设置了所有不是(True,True)或(False,False)的条件以返回False,为什么我看到这个结果?
除了对每个可能的排列进行硬编码之外,我可以采取哪些步骤以便我的代码能够处理这些条件?
答案 0 :(得分:4)
&
按位和运算符。相反,您应该使用and
,这是逻辑和运算符。请注意,顺便说一句,您只需检查a_howl
和b_howl
是否相等就可以大大简化此功能:
def wolf_trouble(a_howl, b_howl):
return a_howl == b_howl