红颜莎娜
总结: 对于任何 ,这就是为什么 12 的结果等于 ,即 12。X^0 == XX12^0我在数学上并不精确,但对于一个操作,可能存在一个什么都不做的“中性”值:对于加法,它是0:X+0 == X对于乘法,它是1:X*1 == X对于 AND(逻辑,按位)它是或位值 1True等。您始终可以插入中性值,而无需更改结果。这意味着例如,空数字列表的总和为0,乘积为1。您自然会将该值用作 or 实现中的起点:sum(alist)product(alist)total = 0; for x in alist: total = total + xprod = 1; for x in alist: prod = prod * x回到你的问题,XOR的中性值为0。我们将xor写为:def xor(*args): result = 0 for x in args: result ^= x return result然后:>>> xor(17,18,19,20,21,22,23,25,26,29)14>>> xor(0,1,2,3,4,6)2>>> xor()0>>> xor(12)12