目录

文章目录

一、运算符是什么?

二、算数运算符

 三、比较(关系)运算符

四、赋值运算符

五、逻辑运算符

总结


一、运算符是什么?

运算符是用于数学计算,比较大小和逻辑运算的符号。python中主要有以下几类运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符

二、算数运算符

算数运算符主要用于数学运算,部分运算符也可以用于其他数据类型的运算。

运算符

描述

示例

+

加法运算

3+4 输出结果7

-

减法运算

3-4 输出结果-1

*

乘法运算

3*4 输出结果12

/

除法运算,结果是浮点数

3/4 输出结果0.75

//

整除运算,结果只保留整数部分,不四舍五入

3//4 输出结果0

%

取余运算(模运算),获取余数

3%4 输出结果3

**

幂运算

3**4 输出结果81

加号还可以用于字符串、列表、元组的拼接。

python关系运算符 python关系运算符号包括哪些_pandas

 乘号的一些特殊用法。乘号可以将字符串、列表、元组重复n次,相当于相加n次。

python关系运算符 python关系运算符号包括哪些_运算符_02

 三、比较(关系)运算符

 比较运算符主要用于两个对象的大小比较,返回一个布尔值。

运算符

描述

示例

==

相等,比较两个对象是否相等

3 == 4 输出结果False

!=

不相等,比较两个对象是否不相等

3 != 4 输出结果True

>

大于,比较前一个对象是否大于后一个对象

3 > 4 输出结果False

<

小于,比较前一个对象是否小于后一个对象

3 < 4 输出结果True

>=

大于等于,比较前一个对象是否大于等于后一个对象

3 >= 4 输出结果False

<=

小于等于,比较前一个对象是否小于等于后一个对象

3 <= 4 输出结果True

字符串比较。

python关系运算符 python关系运算符号包括哪些_python_03

 为什么a > b的返回值是True呢?因为a和b的数据类型是字符串,字符串的比较是从左至右按照字符的编码值进行比较(可以通过ord()函数获取字符的编码值),‘2’的编码值是50,‘1’的编码值是49,所以得出的结果是True。如果比较的结果是相等的,那么会比较下一位字符,直到比较完所有字符。

四、赋值运算符

赋值运算符主要用于创建变量或更新变量的值。

运算符

描述

示例

=

基本赋值运算符

c = a + b 将a+b的结果赋值给c 

+=

加法赋值运算符

c += a 等效于 c= c + a

-=

减法赋值运算符

c -= a 等效于 c= c - a

*=

乘法赋值运算符

c *= a 等效于 c = c * a

/=

除法赋值运算符

c /= a 等效于 c = c / a

//=

整除赋值运算符

c //= a 等效于 c = c // a

%=

取余赋值运算符

c %= a 等效于 c = c % a

**=

幂赋值运算符

c **= a 等效于 c = c ** a

要注意的一点是 c += a 是等效于c = c + a而不是c= a + c。为什么强调这一点呢,因为在做字符串运算时有个顺序问题。例如:

python关系运算符 python关系运算符号包括哪些_python关系运算符_04

在某些情况下,会循环做字符串的拼接,使用时要注意这个问题。

python关系运算符 python关系运算符号包括哪些_赋值运算符_05

五、逻辑运算符

逻辑运算符用来表示日常交流中的“并且”,“或者”,“除非”等思想。分别对应着and、or、not(与运算、或运算、非运算)。逻辑运算符能把语句连接成更复杂的语句。

与运算(and)

布尔值全为True则结果为True。真值表:

A

B

结果

0

0

0

0

1

0

1

0

0

1

1

1

可以理解成A*B,零乘以任何数都为零。

或运算(or)

布尔值有一个为True则结果为True。真值表:

A

B

结果

0

0

0

0

1

1

1

0

1

1

1

1

或运算可以理解成A+B,只要有一个数为1则结果为1。

非运算(not)

原先为True则非运算结果为False。真值表:

A

结果

0

1

1

0

逻辑运算符的优先级

not > and > or

判断数据的布尔值

数据的布尔值为True的情况有很多,但是结果为False的情况是有限的,我们只需要记住布尔值为False的情况即可。下表是常见的布尔值为False的情况:

数据

描述

False

布尔值

None

None类型

0

整数

0.0

浮点数

''

空字符串

[]

空列表

()

空元组

{}

空字典

set()

空集合

另外可以通过使用内置函数bool(数据)来判断变量的布尔值。

bool(0.0)

python关系运算符 python关系运算符号包括哪些_python_06

逻辑运算 

a = not 1 or 0 and 1

python关系运算符 python关系运算符号包括哪些_python_07

 运算过程:

按照逻辑运算符的优先级:

1. not 1  结果为False

2. 0 and 1 结果为0,与运算先看and左侧,如果左侧布尔值为False,那么就不会再看右侧的值,所以结果为0

3. False or 0 结果为0,or运算先看or左侧,如果左侧布尔值为False,那么会再看右侧的值,所以最后的结果为0,即a的值为0,而不是False,这里大家一定要注意哦!

其实这也让我们给变量赋值有了更方便简洁的方式,如下面的例子:

python关系运算符 python关系运算符号包括哪些_赋值运算符_08

 我们在给c赋值的时候,有时候需要先判断a的布尔值是否为False,如果为False那么就赋值b。传统写法:

if bool(a):
    c = a
else:
    c = b

 而通过逻辑运算符一句话就可以搞定哦。

六、位运算符

位运算是程序设计中对位模式或按位或二进制数的一元和二元操作。

位运算符

描述

示例

&

从左按位与

2&1结果0

|

从右按位或

2|1结果3

^

按位异或,相同为0,不同为1

2^1结果3

~

按位取反

~2结果为-3

<<

左移运算符

4<<2结果为16

>>

右移运算符

4>>2结果为1

七、成员运算符

成员运算符是用于检查字符串、列表、元组、集合、字典之类的序列中是否存在某个值的运算符。

成员运算符有两个:

运算符

描述

示例

in

in 如果在指定的序列中找到值返回 True,否则返回 False

'a' in 'apple',返回值True

not in

not in 如果在指定的序列中没有找到值返回 True,否则返回 False

'x' not in ['1',2,'x']

八、身份运算符

身份运算符用于对对象执行比较操作,即这些运算符检查两个操作数是否引用相同的对象(具有相同的存储位置)。其本质就是判断两个变量的id值是否相等。a=10,b=10

运算符

描述

示例

is

is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

a is b 结果是True

is not

is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

a is not b 结果是False

is 与 ==的区别:

  1. is用于判断两个变量引用对象是否为同一个,即id(a)是否等于id(b)
  2. ==用于判断引用变量的值是否相等,即a是否等于b

python关系运算符 python关系运算符号包括哪些_运算符_09

由这个示例可以看出,a和b的值虽然相等,但是a和b是两个不同的对象,因为他们的id值是不同的。

九、运算符的优先级

当一个表达式中出现多个运算符时,就需要根据运算符的优先级进行运算。就像数学中的四则运算中先乘除后加减一样。

只需要记住算数运算符优先级最高,逻辑运算符优先级最低。算数运算符中幂运算优先级最高,逻辑运算符中or运算优先级最低。


总结

运算符是编程的基础,要数量掌握各种运算符的使用。在使用运算符时,要注意运算符的优先级。