Python 基本运算符


2021年8月23日, Learn eTutorial
2174

在本教程中,我们将掌握 Python 中所有基本运算符及其表达式。此外,我们还将学习 Python 中不同类型的运算符以及如何使用它们。

Python 运算符是执行某些计算的唯一符号。运算符作用于其上的对象或值在 Python 中称为 **操作数**。包含运算符和操作数的任何语句都称为 **表达式**。


X = 50
Y = 20
Z = X + Y -10
print(Z)
 

输出

60

在上面的示例中,Z = X + Y -10 是一个表达式,其中 +- 是它的运算符,而 ZXY10 是操作数。

Python 中有哪些不同类型的运算符?

Python 中不同类型的运算符列在下面。

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 赋值运算符
  • 身份运算符
  • 成员运算符

算术运算符

Python 中的算术运算符用于数学计算,如加法、减法、乘法、除法、取模等。

运算符 含义 描述 示例

+

加法

将两个操作数相加或一元加

10+2=12

-

减法

从左操作数中减去右操作数或一元负号

10-2=8

*

乘法

将两个操作数相乘

10*2=20

/

除法

将左操作数除以右操作数

10/2=5

%

取模

除法后的余数

10%2=0

**

指数

执行指数计算

10**2=100

//

地板除法

只考虑商的整数部分,不包括小数点后的值。

10//2=5

10//-4=-3

注意:在向下取整时,如果结果为负数,则会向下取整到下一个最小的整数值。

下面示例中给出了一些算术运算符及其计算。


X = 10
Y = 2

print('X+Y=',X+Y)
print('X-Y=',X-Y)
print('X*Y=',X*Y)
print('X/Y=',X/Y)
print('X%Y=',X%Y)
print('X**Y=',X**Y)
print('X//Y=',X//Y)
 

输出


X+Y= 12
X-Y= 8
X*Y= 20
X/Y= 5.0
X%Y= 0
X**Y= 100
X//Y= 5

注意:除法的结果(商)始终表示为浮点数。

比较运算符

顾名思义,比较运算符也称为 **关系运算符**,它比较两个操作数,并在 Python 中返回 True(如果条件满足)或 False 作为结果。

运算符 含义  描述 示例
== 等于 如果两个操作数相等,则返回 True a==b
!= 不等于 如果两个操作数不相等,则返回 True a!=b
大于 如果左操作数大于右操作数,则返回 True a>b
小于 如果左操作数小于右操作数,则返回 True a<b
>= 大于或等于 如果左操作数大于或等于右操作数,则返回 True a>=b
<= 小于或等于 如果左操作数小于或等于右操作数,则返回 True a<=b

示例:比较运算符


a = 10
b = 2

print('a==b is',a==b)
print('a!=b is',a!=b)
print('a>b is',a>b)
print('a=b is',a>=b)
print('a<=b is',a<=b)
 

输出



a==b is False
a!=b is True
a>b is True
a=b is True
a<=b is False

注意:比较运算符通常用于控制程序的流程。

逻辑运算符

逻辑运算符用于评估两个表达式或语句。三个基本逻辑运算符是 andornot。它们通常用于布尔上下文中控制程序的流程,与比较运算符类似。布尔值要么是 True(T),要么是 False(F)。

运算符 含义 描述 示例
and 逻辑与/合取 当且仅当两个语句都为真时,才返回 True X and Y
or 逻辑或/析取 如果任何一个语句为真,则返回 True X or Y
not 逻辑非/否定 如果操作数是其否定,则返回 true not X

Python Logical Operators Truth Table

这是示例


x=12
print('x>5 and x<10 is',x>5 and x<10)
print('x>5 or x<10 is',x>5 or x<10)
print('not x<10 is', not x<10)
 

输出


x>5 and x<10 is False
x>5 or x<10 is True
not x<10 is True

位运算符

位运算符用于操作位级数据。常见的逻辑运算符(如算术运算符、比较运算符等)作用于字节,而位运算符作用于字节中的位。常见的位运算符列在下表中。3 的二进制表示为 0000 0011,4 的二进制表示为 0000 0100。

运算符 含义 描述 示例
& 二进制与 如果两个操作数都为真,则结果为 1,否则为 0 3&4 =0
| 二进制或 如果任一操作数为真,则结果为 1,否则为 0 3|4=7
^ 二进制异或 当且仅当两个操作数都为真时,结果为 1,否则为 0 3^4=7
~ 二进制一元补码 结果是操作数的否定 ~3=-4
<<  二进制左移 将位向左对齐 12
>>  二进制右移 将位向右对齐 0

位运算符示例


a=3
b=4

print('a&b is',a&b)
print('a|b is',a|b)
print('a^b is',a^b)
print('~a is',~a)
print('a<<2 is',a<<2)
print('a>>2 is',a>>2)
 

输出


a&b is 0
a|b is 7
a^b is 7
~a is -4
a<<2 is 12
a>>2 is 0

我们在哪里使用位运算符?

位运算在现实世界中并不常见,因为它们通常用于低级操作。低级操作使用 0 和 1 的二进制格式来操作数据。下面列出了一些使用位运算符的领域。

  • 主要用于嵌入式系统
  • 数据压缩 - WinRAR, zip
  • 加密
  • 网络
  • 硬件操作
  • 图形

赋值运算符

如前几篇教程中所述,赋值运算符将值赋给变量。例如,a = 10 将值 10 赋给变量 a。Python 中提供了一些复合赋值运算符。它们采用表达式 a+=10,这等效于 a= a+10。所以,让我们学习一些下表所示的赋值运算符。

运算符 示例 含义
= a = 10  
+= a+=10 a=a+10
-= a-=10 a=a-10
*= a*=10 a=a*10
/= a/=10 a=a/10
%= a%=10 a=a
//= a//=10 a=a//10
**= a**=10 a=a**10
&= a&=10 a=a&10
|= a|=10 a=a|10
^= a^=10 a=a^10
>>= a>>=10 a=a>>10
<<= a<<=10 a=a<<10

成员运算符

从上一篇教程中,我们已经熟悉了成员运算符。Python 中的成员运算符用于验证成员是否存在于字符串、列表、元组、集合和字典等序列中。

Python 中有两个成员运算符:

  • in:如果成员存在于序列中,则返回 True
  • not in:如果成员不存在于序列中,则返回 True。

成员运算符示例


A = {1,3,5,7,8}
print(3 in A)
print(8 not in A)
 

输出


True
False

身份运算符

Python 中的身份运算符用于比较两个变量的内存位置。如果两个变量的内存位置相同,则结果为 true。

Python 中有两个身份运算符:

  • is:如果操作数指向相同的对象或相同的位置,则为 True
  • is not:如果操作数指向相同的对象或相同的位置,则为 False

身份运算符示例


x1=10
x2=10
y1=y2='OP'
x1=[1,2,3]
print('x1 is x2 evaluates to',x1 is x2)
print('y1 is not x2 evaluates to',x1 is not x2)
print('x1 is x1 evaluates to',x1 is x1)

输出


x1 is x2 evaluates to False
y1 is not x2 evaluates to True
x1 is x1 evaluates to True

Python 中的运算符优先级

运算符优先级是指运算符计算表达式的顺序。下面的列表提供了 Python 中的运算符优先级。

顺序 算术运算符 逻辑运算符 关系运算符
1 指数 (**) not 相等 (==)
2 补数 () 一元加、一元减 and 不等 (<>)
3 乘法 (*), 除法 (/) or 小于 (<)
4 地板除法 (\)   大于 (>)
5 模数 (%)   小于或等于 (<=)
6 加法 (+), 减法 (-)   大于或等于 (>=)