【发布时间】:2017-08-19 13:21:24
【问题描述】:
我正在阅读基于 Python 的交易平台的 tutorial,它建议使用按位(~、&、|)而不是布尔值(not、@987654326 @, or) 用于组合布尔表达式的运算符。
与因子一样,过滤器可以组合使用。组合过滤器是使用
&(and) 和|(or) 运算符。
这样做有充分的理由吗?我以前从未见过它。我不完全确定 Python 中布尔值的所有属性,但我相信在 C 和 C++ 中,布尔值由整数 1 或 0 表示,并且可以这样操作。 Python 类似吗?我可以看到& 和| 至少可以在这种情况下工作。
使用这些位运算符而不是布尔值的目的是什么?是不是更快?
【问题讨论】:
-
那么教程为什么会推荐它?
-
如果他们在 条件表达式 中向您推荐位运算符而不是普通的布尔运算符,那么这就是个问题。
-
它没有。这实际上意味着它认为它们是布尔运算符。
Like factors, filters can be combined. Combining filters is done using the & (and) and | (or) operators. -
“用于组合布尔表达式”:这是有条件的。
-
@Luke Python 表达式没有类型,所以没有像“布尔表达式”这样的东西。最有可能的诸如“因素”和“过滤器”之类的东西不是布尔值,但如果没有更多上下文,我们无法确定。使用
>等的表达式并不总是计算为布尔值。
标签: python bitwise-operators boolean-operations