Python或运算符
逻辑或
编程是数学、逻辑和其他许多领域的混合物。要解决数学中的任何问题,从教科书到实时问题,我们都需要加法、减法、乘法和除法运算符。这些都是数学中需要的基本运算符。类似地,为了对变量或值执行任何操作,Python有7种类型的运算符,每种都有用。其中之一就是”或”运算符,它属于逻辑运算符。
逻辑运算符主要涉及决策需求。逻辑运算符有三个操作符:
- 逻辑与
- 逻辑或
- 逻辑异或
本文讨论了逻辑或运算符,并给出了示例以便清楚理解。
基本:
在C和Java等语言中,“||”表示逻辑或运算符,但在Python中,我们使用“or”而不使用任何特殊符号。
语法:a or b
返回值: 此运算符根据操作数返回”True”或”False”。
- 如果操作符两侧的操作数/表达式都为假,则返回 False 。
- 如果至少有一个操作数为true或者两个都为true,则返回 True 。
“OR”运算符的真理表:
Expression 1 | Expression 2 | (Expression 1 and Expression 2) returns: |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
需要使用OR运算符
假设我们需要一个数;如果它是正数,它必须大于20;如果它是负数,它必须小于-20。要满足这些条件,如果我们使用条件语句编写代码:
num = int (input ("Enter a number: "))
if (num < -20):
print ("True")
elif (num > 20):
print ("True")
else:
print ("False")
输出:
理解:
在上面的代码中,
- 首先,我们检查数字是否为负数并且小于-20。如果条件为真,则不需要检查下一个条件,因此我们打印“True”。
- 如果条件为假,则执行elif块,检查数字是否为正数并且大于20。如果条件为真,则打印“True”。
- 如果if和elif都为假,则执行else块打印“False”。
- 使用“OR”运算符编写上述代码:
- 我们可以在一行中同时检查这两个条件。
- 如果至少有一个条件为真,则立即返回“True”。
- 如果这两个条件都为假,则返回“False”。
num = int (input ("Enter a number: "))
if (num < -20 or num > 20):
print ("True")
else:
print ("False")
输出:
- 使用“或”操作符使代码简单、可读性强,并且减少代码的长度。
让我们通过一个实时应用举个示例:
假设你正在为b-tech和m-tech学生组织一场编程竞赛;为了让学生参加比赛,他们必须是b-tech或m-tech学生。任何既不是b.tech又不是m.tech学生的人都不允许参加比赛。因此,我们需要检查至少有一个条件是否为真。
代码:
name = input ("Please enter the participant's name: ")
course = input ("Please enter the course the participant's studying\nPlease enter the name of the course in capital letters without spaces or other characters in between like BTECH and MTECH: ")
if (course == "BTECH" or course == "MTECH"):
print ("Congratulations!, You are eligible for the competition")
else:
print ("Only students in B-Tech and M-Tech are allowed to the competition. Sorry! We can't enroll you in")
输出:
“or”仅对两个数字使用
现在让我们看看如果在”or”运算符的两侧给出两个十进制整数会发生什么:
前提条件: 通常,“or”检查至少有一个操作数为True。大于0的任何数字都表示True,而0表示False。
num1 = int (input ("Enter a number: "))
num2 = int (input ("Enter another number: "))
print (num1 or num2)
示例输出:
理解:
- 在第一种情况下:
- 两个数字都大于0- True or True条件 。因此,”or”返回True。
- “or”的条件是至少有一个操作数必须为True。因此,在确认第一个数字4(>0)为真之后,即使不检查第二个数字,它也返回 带有第一个数字的”True” 。
- 在第二种情况下:
- 第一个数字为0-False;”or”检查第二个数字,它是1(>0)- False or True条件 。返回 False 。
- 在第三种情况下:
- 第一个数字为0-False;”or”检查第二个数字,它再次为0- False or False 。返回 False 。
- “or”运算符搜索操作数以找到一个”True”。一旦找到一个”True”,它立即返回True而不检查其他操作数。这个条件被称为 “短路” 或 “惰性计算” 。
“or”与多个操作数一起使用
num1 = int (input ("Enter the first value: "))
num2 = int (input ("Enter the second value: "))
num3 = int (input ("Enter the third value: "))
print (num1 or num2 or num3)
示例输出:
理解:
这与有两个操作数是一样的。“或”检查是否存在一个“True”,如果找到一个,它返回“True”,如果至少找不到一个True,则返回“False”。
按位或(|)
Python中还有另一个“或”运算符。这是一个位运算符。我们用“|”表示。两者都被称为“或”运算符。现在,让我们看看这两个运算符之间的区别:
二进制语言是计算机的语言。所有内部机制都是基于位进行的。位运算符是一组允许程序员在整数上执行位运算的运算符。有六个位运算符:
- 位与
- 位或
- 位非
- 位异或
- 位右移
- 位左移
(逻辑或,位或),(逻辑与,位与),(逻辑非,位非)的区别在于它们的名称。
- 如果使用任何位运算符,首先将 整数转换为二进制位 ,然后运算符会 逐位地 执行操作。
- 这里, 1表示True,0表示False 。
- 操作完成后,将二进制数转换为十进制并返回作为输出。
位或的操作:
给定的整数被转换为位(二进制),运算符将对两个数字的每个相应位进行操作。
Bit 1 (operand 1) | Bit 2 (operand 2) | Return value |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
1 | 1 | 1 |
0 | 1 | 1 |
让我们来看一个示例:
如果 num1 = 3 和 num2 = 4:
3 -> 011
4 -> 100
执行 | 操作:
如果我们对3和4进行逻辑或操作,我们将得到True,并返回3:
num1= int (input ("Enter a number: "))
num2 = int (input ("Enter another number: "))
print (num1 or num2)
print (num1 | num2)
输出:
这是Python语言中可用的两个 “or” 运算符。
逻辑或 vs 位或:
逻辑或 | 按位或
—|—
逻辑或用”or”表示。 | 按位或用”|”表示。
它仅适用于布尔值;即使我们使用表达式,它们也会被评估为True或False。 | 它适用于整数值和布尔值 打印(True | False) – > True **
它搜索True值,如果找到一个,它不会评估表达式的其余部分并返回”True”。这种现象被称为” **惰性评估 “。 | 即使运算符找到了True值,它仍然继续评估后面的表达式。
此运算符主要用于决策和真值测试。 | 按位运算符设计用于低级位操作。
大于0的每个数字被评估为”True”,等于0或小于0的每个数字被评估为”False”。 | 1表示”True”,0表示”False”。
在运算符层次结构中,按位运算符比逻辑运算符优先级高。