评估一个简单的Python表达式

时间:2017-07-25 10:52:39

标签: python

我在python中尝试简单的事情,当我用两种不同的方式写相同的东西时,我会得到不同的结果。

(ord(X) + I ^ ord(Y[I])) % 255

我希望这个表达式等于例如57,因为5 ^ ord(Y[5]) = 114(I = 5且Y [I] =' w')。我认为这是{{1 }和114+198=312我的ord(x)应该是198,但如果我在python控制台上写:

312%255=57我得到188。

相反,如果我写:

(ord(chr(198)) +5^ord(Y[5])) % 255我得到了我想要的东西:57

我在这里错过了一些明显的事吗? 为什么我的思维方式错了?

1 个答案:

答案 0 :(得分:2)

使用更简单的案例:

>>> 1 + 1 ^ 1
3

如果你想首先完成XOR,你需要在它周围加上括号,比如

(ord(X) + (I ^ ord(Y[I]))) % 255