我们有两只猴子,a和b,参数a_smile和b_smile表示每个猴子是否在微笑。如果他们都在笑,或者他们俩都不笑,我们就有麻烦了。如果我们有麻烦的话,还真。
我的解决办法是这个,其实我能很快地解决这个问题。以前,当我尝试这些的时候,我一次也做不到,但是,我一直在变好,但是,我仍然知道我很糟糕。*\
def monkey_trouble(a_smile, b_smile):
if a_smile and b_smile:
return True
if not a_smile and b_smile:
return False
if not a_smile and not b_smile:
return True
if a_smile and not b_smile:
return False我看到了这样的解决方案:
if a_smile==b_smile:
return True
return False我也不太明白。
如果a_smile==b_smile ->返回true,我就会得到它。
如果不是a_smile而不是b_smile:->返回true
但是对于那些如果不是只有一个微笑,我就不明白代码是如何工作的。
发布于 2022-10-02 21:19:58
如果'a‘和'b’的微笑相等,它将返回True。这意味着如果两个微笑都是真实的,它将返回真实,如果两个微笑都是假的,它将返回真实。
但是,如果它们不相等(意味着一个为真,另一个为假),它将不会在if语句中运行程序,因此程序将继续并返回False。
这与他们的脚本相同,但我只是添加了一个else语句,以便更容易理解:
if a_smile == b_smile:
return True
else:
return False发布于 2022-10-02 21:20:29
如果微笑是布尔的(True或False),那么a_smile == b_smile就相当于:
(0 == 0) or (1 == 1)...which与以下内容相同:
if (not a_smile and not b_smile) or (a_smile and b_smile):
return True另一个选项是a_smile != b_smile,它与以下内容相同:
(0 != 1) or (1 != 0)同样,可以将其分解为:
if (not a_smile and b_smile) or (a_smile and not b_smile):
return False最后,我们有:
if (not a_smile and not b_smile) or (a_smile and b_smile):
return True
else:
return False嘿,这实际上涵盖了所有四个案子!您的原始代码也可以简化为上面的代码,这相当于使用==的代码。
还请注意如何以不同的方式解释任务的文本:
:如果他们都在笑,或者他们都没有笑,我们就有麻烦了。如果我们有麻烦的话,还真。
所以,如果飞蛾猴子有同样的“微笑状态”,我们就会返回True。因此:
def monkey_trouble(a_smile, b_smile):
return a_smile == b_smile # is the "smiling status" the same?...which与您的原始代码、文章中的第二段代码以及这个答案中“最终,我们有”之后的代码相同。
发布于 2022-10-02 21:33:52
只要a_smile和b_smile是布尔值,那么True值表示微笑,False表示不微笑。
==操作符检查左值是否等于右值,从而检查两只猴子是否都在微笑或都不笑。它不只是在正值的情况下进行比较。
if a_smile==b_smile:
return True由此我们可以推断,如果值不相等(else),那么我们是安全的:
return False*注意,由于前面一行的返回,我们不需要编写else。
现在我们应该注意到,一个条件最终会被计算为一个布尔值。这意味着我们可以进一步简化代码:
def monkey_trouble(a_smile, b_smile):
return a_smile == b_smile https://stackoverflow.com/questions/73929387
复制相似问题