小能豆

在 Python 中 & 和 <and> 是否等效?

py

在 Python 中 & 和 是否等效?


阅读 8

收藏
2024-11-04

共1个答案

小能豆

and是一个布尔运算符。它将两个参数都视为布尔值,如果第一个参数为假则返回第一个参数,否则返回第二个参数。请注意,如果第一个参数为假,则根本不会计算第二个参数,这对于避免副作用很重要。

例子:

  • False and True --> False
  • True and True --> True
  • 1 and 2 --> 2
  • False and None.explode() --> False(无例外)

&有两种行为。

  • 如果两者都是int,则计算两个数字的按位与,返回int。如果一个是int,另一个是bool,则该bool值被强制转换为 int(0 或 1),并应用相同的逻辑。
  • 否则,如果两者都是bool,则对两个参数进行求值并bool返回 a。
  • 否则会引发 a TypeError(例如float & float,等等)。

例子:

  • 1 & 2 --> 0
  • 1 & True --> 1 & 1 --> 1
  • True & 2 --> 1 & 2 --> 0
  • True & True --> True
  • False & None.explode() --> AttributeError: 'NoneType' object has no attribute 'explode'
2024-11-04