Python AND 运算符

Python AND 运算符

Python中有两个AND运算符——“逻辑AND”和“位AND”。本文讨论了这两个运算符并加以区分。

逻辑AND

这个“AND”属于逻辑运算符。这些运算符主要用于 决策需求 以及条件语句(如if-else)。Python中有三个逻辑运算符:

  1. 逻辑AND
  2. 逻辑OR
  3. 逻辑XOR

现在,让我们了解一下逻辑AND运算符:

基本用法:

在C和Java等语言中,“ && ”表示AND运算符,但是在Python中,我们使用“ and ”而不使用任何特殊符号。

语法:a and b

返回值: 该运算符根据操作数返回“True”或“False”。

操作:

  • 如果所有的操作数/表达式都为真,则AND运算符返回 True
  • 如果至少有一个操作数为假,则返回 False

“AND”运算符的真值表:

Expression 1 Expression 2 (Expression 1 and Expression 2) returns:
True True True
True False False
False True False
False False False

AND运算符的需求

假设你正在尝试编写一段代码来判断一个数字是否大于20且为偶数。你需要检查两个条件:

  1. 如果num > 20
  2. 如果num是偶数

两个条件都必须满足。

通常,我们将其写为:

num = int (input ("Enter a number: "))
if (num > 20):
    if (num % 2 == 0):
        print (num, " is greater than 20 and is even")

输出:

Python AND 运算符

需要4行代码。现在让我们使用AND运算符的功能:

num = int (input ("Enter a number: "))
if (num > 20 and num % 2 == 0):
        print (num, " is greater than 20 and is even")

输出:

Python AND 运算符

理解:

在这一行中 **如果(num >20 且 num%2 0) ** ,首先检查左侧条件num>20。对于num = 34,它是true;因此,右侧条件被检查,34可被2整除。两个条件均满足。执行打印语句。

  • 如果我们有31,即使它大于20,但它不能被2整除,它将不会被打印出来。 “and”的两个条件必须都为true才能为true。

让我们用一个实时应用程序的示例来说明:

假设您正在为BTech和MTech学生组织一场编程比赛;对于任何参赛学生来说,他的年龄必须在18到28岁之间。任何年龄太小或太大的人都严格禁止参赛。因此,我们需要检查两个条件才能录取学生。

代码:

name = input ("Please enter the participant's name: ")
age = int (input ("Please enter the valid age of the participant: "))
if (age >= 18 and age <= 28):
    print ("Congratulations!, You are eligible for the competition")
else:
    print("Only students between 18 to 28 are allowed to the competition. Sorry! We can't enroll you in")

输出:

Python AND 运算符

“and”只用于两个数字

现在我们来看看如果我们在”and”操作符的两侧都给出两个十进制整数会发生什么:

先决条件: 一般来说,”and”会检查两个操作数是否都为True。任何大于0的数字表示True,而0表示False。

num1 = int (input ("Enter a number: "))
num2 = int (input ("Enter another number: "))
print (num1 and num2)

示例输出:

Python AND 运算符

理解:

1. 在第一个情况中:

  • 两个数字都大于0- True and True 条件 。因此,”and” 返回 True。
  • “and” 的条件是两个操作数都为真。因此,在确认第一个数字-3(>0)为真后,它检查第二个数字-4(>0),这也为真。所以,它返回带有第二个数字的 “True”。

2. 在第二个情况中:

  • False and True 条件
  • 第一个数字是0-False。
  • “and” 要为 True,不能有 “False”。因此,一旦确认第一个数字是 “False”,而不检查第二个数字,它就会返回 “False”。

3. 在第三个情况中:

  • 第一个数字是0-False。
  • 立即 “and” 返回 False。
  • False and False 条件

让我们看另一个示例:

num = int (input ("Enter a number: "))
if (num > 0 and num < 10):
    print ("num is between 0 and 10")
elif (num > 10 and num < 50):
    print ("num is between 10 and 50")
else:
    print ("num is either less than 0 or greater than 50")

示例输出:

Python AND 运算符

理解:

我们检查了数字是否属于0到10或10到50的区间。如果数字都不属于这两个区间,则数字可以小于0或大于50。

使用多个操作数的 “and”:

num1 = int (input ("Enter the first value: "))
num2 = int (input ("Enter the second value: "))
num3 = int (input ("Enter the third value: "))
print (num1 and num2 and num3)

输出:

Python AND 运算符

理解:

首先,检查num1并且它为真,然后检查第二个数字num2并且它为真。但是,第三个数字num3为假,因此,num1和num2和num3返回假。

使用多个表达式:

num1 = int (input ("Enter the first value: "))
num2 = int (input ("Enter the second value: "))
num3 = int (input ("Enter the third value: "))
print (num1 > 30 and num2 > 23 and num3 < 9)

输出:

Python AND 运算符

理解:

第一个条件,num1 > 30,本身为假。因此,直接输出假。即使第一个条件为真,第二个条件为假;如果第二个条件也为真,第三个条件也为假。因此,在给定的num1、num2和num3的情况下,所有三个条件都为假。

位运算符(&)

Python中还有另一个“and”运算符。它是一种位运算符。我们将其表示为“&”。

二进制语言是计算机的语言。所有的内部机制都是基于比特位来进行的。位运算符是允许程序员对整数执行位操作的一组运算符。共有六个位运算符:

  1. 位与运算符
  2. 位或运算符
  3. 位非运算符
  4. 位异或运算符
  5. 位右移运算符
  6. 位左移运算符

(逻辑或,位或)、(逻辑与,位与)、(逻辑非,位非)之间的区别在于“位”的概念本身。

  • 如果使用任何位运算符,首先,将 整数转换为二进制位 ,然后将逐位地执行位运算 **。
  • 这里, 1表示真,0表示假
  • 操作完成后,二进制数将被转换为十进制并返回输出。

位与运算的操作:

给定的整数被转换为比特位(二进制),并且“and”对两个数字的每个对应比特位进行操作。

Bit 1 (operand 1) Bit 2 (operand 2) Return value
0 0 0
1 0 0
1 1 1
0 1 0

让我们举个示例:

如果num1 = 3,num2 = 4:

3 -> 011

4 -> 100

**执行 & 操作: **

Python AND 运算符

如果我们在3和4上执行逻辑与运算,我们将得到True和返回4:

num1= int (input ("Enter a number: "))
num2 = int (input ("Enter another number: "))
print (num1 and num2)
print (num1 & num2)

输出:

Python AND 运算符

这是Python语言中可使用的两个“and”运算符。让我们看一下这两个运算符之间的区别:

逻辑AND vs.位AND

逻辑与 | 位与
—|—
逻辑与用 “and” 表示。 | 位与用 “&” 表示。
仅针对布尔值定义;即使我们使用表达式,它们也会被评估为True或False。 | 定义为整数值以及布尔值 打印(True & False) -> False **
它搜索False值;如果找到一个,它不评估表达式的其余部分并返回”False”。这被称为” **懒惰评估
“。 | 即使运算符找到一个False值,它也会继续评估其余的表达式。
这个运算符主要用于决策和真实性测试。 | 位运算符专为低级位操作而设计。
大于0的每个数字计算为”True”,等于0或小于0的每个数字计算为”False” | 1表示”True”,0表示”False”。
在运算符层次结构中,位运算符的优先级高于逻辑运算符。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程