python - 有没有一种巧妙的方法可以在 IF 语句中对两个条件执行异或运算?

标签 python binary logical-operators xor

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

if (firstvalue[0] == "-" and not secondvalue[0] == "-") or (secondvalue[0] == "-" and not firstvalue[0] == "-"): 
    invertedbinary.append("-")

很明显,如果其中一个数字为负数但不是两个都为负数,则最终字符串将带有负号。否则,两者都为正,字符串上不会有负号。

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

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

我也试过 xor 以防万一,但显然运气不好。关于更简洁的方法有什么建议吗?

最佳答案

如果使用括号,

^ 将正常工作:

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

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

关于python - 有没有一种巧妙的方法可以在 IF 语句中对两个条件执行异或运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40331343/

相关文章:

python - 使用 SWIG 为 C++ 类创建 python 包装器

python - PyQt 在 2 种布局中显示 1 个小部件?

c++ - 使用 fwrite() 和 fread() 进行二进制输入/输出

c - 这个 C 程序究竟是如何从这个二进制文件中读取数据的?

JavaScript : Detecting result of a logical OR condition

c - 如何理解背靠背运营商的行为?

python - 如何将数据添加到 Django 中的现有模型?

python - 使用抽象基类仅用于文档目的

c++ - 十进制到二进制转换器 C++?

Python:按元素比较数组与 float