Python 理解逻辑语句
在最近的一次测试中,我有一个问题: 有两个狼,a和b,参数a_howl和b_howl 指示每个人是否在嚎叫。如果他们都是,我们就有麻烦了 嚎叫或者如果他们两个都没有嚎叫。如果我们在中,则返回True 麻烦 狼群的麻烦(真的,真的)→ 真的 wolf_麻烦(假,假)→ 真的 wolf_麻烦(对,错)→ 假的 我的代码如下所示,在提交之前,我测试了它在所有三种条件下都能工作Python 理解逻辑语句,python,boolean,Python,Boolean,在最近的一次测试中,我有一个问题: 有两个狼,a和b,参数a_howl和b_howl 指示每个人是否在嚎叫。如果他们都是,我们就有麻烦了 嚎叫或者如果他们两个都没有嚎叫。如果我们在中,则返回True 麻烦 狼群的麻烦(真的,真的)→ 真的 wolf_麻烦(假,假)→ 真的 wolf_麻烦(对,错)→ 假的 我的代码如下所示,在提交之前,我测试了它在所有三种条件下都能工作 def wolf_trouble(a_howl, b_howl): if a_howl == True & b
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)返回True,我试图理解为什么。既然我已经将所有非(True,True)或(False,False)的条件设置为返回False,为什么我会看到这个结果
除了对每个可能的排列进行硬编码外,我还可以采取哪些步骤使我的代码能够处理这些条件?
&
是按位and运算符。相反,您应该使用和
,这是逻辑and运算符。注意,顺便说一句,只要检查a_howl
和b_howl
是否相等,您就可以大大简化此函数:
def wolf_trouble(a_howl, b_howl):
return a_howl == b_howl
注意:
&
是Python中的一个位运算符。你应该使用和。非常相关:如果a_howl和b_howl相等,我们就有麻烦了。否则我们就不是了。所以:返回a_howl==b_howl
谢谢!我想我养成了使用“&”的习惯,因为我不得不在熊猫图书馆里使用它。