Python and 和 &

Python and 和 &

在下面的教程中,我们将了解Python编程语言中“and”和“&”之间的区别。

理解Python中“and”和“&”之间的区别

这些是我们在Python中使用的一些运算符,然而两者之间有根本的区别。“and”运算符用于测试所使用的表达式是否都为真(以逻辑方式)。另一方面,“&”运算符在使用False/True值时,测试是否都为真。

在Python编程语言中,空的内置对象通常被视为逻辑上的假。然而,在这种情况下,非空的内置对象总是逻辑上的真。因此,当用户希望在列表不为空时执行某些操作,并在列表为空时执行其他操作时,这种常规用法将被简化。

现在让我们更深入地了解上述两个运算符。

  1. Python中的’and’运算符: ‘and’运算符是逻辑运算符AND,只有在两个操作数都为真时才返回真。
  2. **Python中的’ &’运算符: ** ‘&’运算符是Python语言中使用的位运算符。它基本上针对不同的位执行逐位操作。

注意:当整数值为0时,我们认为它是假的。但是,当我们在逻辑上使用它时,我们认为它是真的。这是因为’and’运算符测试这两个表达式在逻辑上是否都为真,而’&’运算符对在两个语句中获得的结果进行不同的按位AND操作。

现在让我们考虑一些使用这些运算符的示例。

示例1

e examples demonstrating the use of these operators.
Example 1:
# declaring two variables
p = 18
q = 6

# printing the result of 'q and p' and 'q & p'
print(q and p)  # first statement
print(q & p)        # second statement

输出:

18
2

解释:

在上面的代码片段中,我们声明了两个变量,并使用’和’和’&’运算符执行操作。因此,操作的输出之间存在差异。这是因为’and’测试两个表达式是否逻辑上为True,而’&’对两个语句的输出执行位运算AND操作。

编译器首先检查第一个语句中的第一个表达式是否为True。如果第一个表达式为False,则不测试第二个表达式并立即返回False。这个过程称为“惰性求值”。如果第一个表达式为True,则测试第二个表达式,并根据AND运算的规则,只有当两个语句都为True时才会得到True的结果。在上面的示例中,编译器测试第一个表达式为True,因为q的值为6。编译器继续测试第二个表达式,即p的值为18的情况下也为True。因此,输出也为18。

在第二个语句中,编译器对表达式的输出执行位运算AND操作。这里,该语句的求值如下:

Binary value of 6 = 0000 0110
Binary value of 18 = 0001 0010

执行位运算 & 后,我们会得到:

0000 0110
&   =   0000 0010 (Binary value of 2)
0001 0010

因此,输出为 2

让我们考虑另一个示例来详细介绍这个问题。

示例2

# declaring two variables
p, q = 11, 12 

# printing the results
print(p & q)  # first statement
print(p and q)    # second statement

输出:

8
12

解释:

在上面的代码片段中,我们声明了两个变量并打印了两个操作的结果。

第一条语句对这两个变量执行位运算 AND ,第二条语句评估print语句内的表达式并打印结果。

在第一条语句中, a = 1011,b = 1100 ,对a和b执行 & 运算得到 1000 ,这是十进制值 8 的二进制表示。

在第二条语句中,表达式 a and b 首先评估a;如果a是False(或为零),因为之前提到的”延迟求值”特性,其值将立即返回;否则,将评估b。如果b也是非零值,那么将返回其值。返回b的值,因为它是对语句真实性检查的最后一个值。

因此,在循环中推荐使用布尔值和”and”运算符。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程