有没有一种巧妙的方法在IF语句中的两个条件下执行XOR运算?

Aug*_*ams 1 python binary xor logical-operators

我目前正在创建一个二进制计算器,它允许正负二进制输入.关于我的问题,我有以下代码:

if (firstvalue[0] == "-" and not secondvalue[0] == "-") or (secondvalue[0] == "-" and not firstvalue[0] == "-"): 
    invertedbinary.append("-")
Run Code Online (Sandbox Code Playgroud)

很明显,如果任何一个数字为负数但不是两个数字,则最终字符串将具有负号.否则,两者都是正数,字符串上不会有负号.

我只是想知道是否有更简洁的方法来做到这一点?我试过使用,^但我猜它只是一个按位运算符.

if firstvalue[0] == "-" ^ secondvalue[0] == "-":

我也尝试xor了失去机会,但显然没有运气.有关更简洁的方法的任何建议吗?

dus*_*uff 6

^ 如果你使用括号,将工作得很好:

if (firstvalue[0] == "-") ^ (secondvalue[0] == "-"):
Run Code Online (Sandbox Code Playgroud)

你也可以!=代替使用^.它的工作方式与此完全相同,但可能更清晰一些.