【发布时间】:2021-03-23 15:00:59
【问题描述】:
我一直认为 ~ 相当于不在 Python 中,但我有一个错误让我发现了这一点。谁能给我解释一下那是什么?
谢谢
【问题讨论】:
-
这能回答你的问题吗? The tilde operator in Python
-
False 和 True 也是数字 0 和 1。
~是 按位 否定。
标签: python if-statement boolean
我一直认为 ~ 相当于不在 Python 中,但我有一个错误让我发现了这一点。谁能给我解释一下那是什么?
谢谢
【问题讨论】:
~ 是 按位 否定。
标签: python if-statement boolean
From the official documentation:
一元
~(invert) 运算符产生其整数参数的按位反转。x的位反转定义为-(x+1)。它仅适用于整数。
至于~False为什么会是-1,是因为历史原因False == 0和True == 1(它们不相同但相等,而bool是int的子类) .如果你应用上面的公式,你会得到~False => -(False + 1) => -(0+1) => -1, QED。
【讨论】: