python - XOR 运算符没有给出预期的结果?
问题描述
我熟悉在 Python 中使用“and”、“not”和“or”运算符,并且刚刚了解了“XOR”运算符的工作原理。
但是,当我编写此代码时,它似乎不起作用:
a = 2
b = 12
if a == 2 ^ b == 12:
print("You must be broken") # because TRUE XOR TRUE IS FALSE
if a == 10 ^ b > 12:
print("You must also be broken") # because FALSE XOR FALSE IS FALSE
if a < 10 ^ b > 13:
print("This should print because TRUE XOR FALSE IS TRUE")
if a > 3 ^ b == 12:
print("This should print because FALSE XOR TRUE IS TRUE")
该程序不打印任何东西?
解决方案
您误解了Python 的运算符优先级。
这个条件:
a < 10 ^ b > 13
方法
a < (10^b) > 13
意思是
(a < 10^b) and (10^b > 13)
所以是假的。
大概你的意思是:
(a < 10) ^ (b > 13)
对于您的其他条件也是如此。
推荐阅读
- java - Spark java.lang.NullPointerException 在foreach迭代器内部过滤spark数据帧时出错
- python - Python-将输入变量存储在每次迭代具有不同名称的循环中
- ios - UIScrollView:无限滚动以显示斐波那契数
- excel - 在我的 VB6.0 项目中提示运行时错误“91”
- java - 如何将值从十个不同的片段存储到一个类并将值从类中检索到一个活动
- python - 哪种方式更好地重置熊猫数据框中的索引?
- c++ - sendMessage 到隐藏窗口不起作用
- terraform - 备份 Terraform 状态文件
- java - i == (i = 2) 的结果是什么?
- javascript - 在另一个类中使用函数 onSubmit (REACT.js)