【问题标题】:Some help in my moment of stupidness在我愚蠢的时刻有一些帮助
【发布时间】:2017-02-25 21:21:55
【问题描述】:

所以我有这个项目到期了,对于其中一个问题,在完成所有计算之后,您比较两个不同的布尔值。因此,如果两个布尔值都为真,则答案将返回假,如果两个布尔值都为假,它将返回假,并且仅当布尔值之一为真而另一个为假时才返回真(不管哪个)

假设这两个布尔值是 A 和 B

我的代码看起来像这样 返回 A != B

他的代码是这样的 返回((A而不是B)或(B而不是A))

谁是对的?我们俩都对吗? 他比我聪明很多所以我只是想知道我是否犯了一些愚蠢的错误

【问题讨论】:

  • 请尝试为您的问题提供一个信息丰富的标题。至于问题:检查4个案例:A,B各对或错(2x2组合)。您可以在纸上自己确定这些问题。

标签: python boolean logic


【解决方案1】:

你们都对,结果是一样的。 只有一个选项比另一个更短或更简单。

只要结果正确,解决问题的方法不止一种。 在这里,我提供了另一种解决方案。

你也可以使用 XOR ^

t = False
f = False

result = t ^ f
print result
>> False

t = True
f = False

result = t ^ f
print result
>> True

t = False
f = True

result = t ^ f
print result
>> True

t = True
f = True

result = t ^ f
print result
>> False

【讨论】:

  • 首先,回答问题——谁是对的,然后提供替代方案。只是一个替代方案(没有解释)不会回答或帮助 OP。解释谁是正确的,然后提供一个替代方案,并至少解释 ^ 是什么以及它的作用......
【解决方案2】:

在我看来,你们俩都是对的。 但我认为你的答案更简单。

def fun(a,b):
    result = a ^ b
    #your code
    resultA= a!=b
    #your friend's code
    resultB= (a and not b) or (b and not a)

    print result
    print resultA
    print resultB
    print '-'*20

a = False
b = False
fun(a,b)

a = True
b = False
fun(a,b)

a = False
b = True
fun(a,b)

a = True
b = True
fun(a,b)

输出:

False
False
False
--------------------
True
True
True
--------------------
True
True
True
--------------------
False
False
False
--------------------

【讨论】:

    【解决方案3】:

    True False Table

    见上面的真假表。

    异或 => ^

    因此,在这种情况下,您可以使用 A ^ B。 但是,A != B 也适用于此。

    你们都是对的。但是,您的代码更简洁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 2015-12-06
      • 1970-01-01
      相关资源
      最近更新 更多