python从入门到出家(三)运算符

目录

文章目录

一、运算符是什么?

二、算数运算符

 三、比较(关系)运算符

四、赋值运算符

五、逻辑运算符

总结


一、运算符是什么?

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

  • 算术运算符

  • 比较(关系)运算符

  • 赋值运算符

  • 逻辑运算符

  • 位运算符

  • 成员运算符

  • 身份运算符

二、算数运算符

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

运算符描述示例
+加法运算3+4 输出结果7
-减法运算3-4 输出结果-1
*乘法运算3*4 输出结果12
/除法运算,结果是浮点数3/4 输出结果0.75
//整除运算,结果只保留整数部分,不四舍五入3//4 输出结果0
%取余运算(模运算),获取余数3%4 输出结果3
**幂运算3**4 输出结果81

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

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

 三、比较(关系)运算符

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

运算符描述示例
==相等,比较两个对象是否相等3 == 4 输出结果False
!=不相等,比较两个对象是否不相等3 != 4 输出结果True
>大于,比较前一个对象是否大于后一个对象3 > 4 输出结果False
<小于,比较前一个对象是否小于后一个对象3 < 4 输出结果True
>=大于等于,比较前一个对象是否大于等于后一个对象3 >= 4 输出结果False
<=小于等于,比较前一个对象是否小于等于后一个对象3 <= 4 输出结果True

字符串比较。

 为什么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。为什么强调这一点呢,因为在做字符串运算时有个顺序问题。例如:

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

五、逻辑运算符

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

与运算(and)

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

AB结果
000
010
100
111

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

或运算(or)

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

AB结果
000
011
101
111

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

非运算(not)

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

A结果
01
10

逻辑运算符的优先级

not > and > or

判断数据的布尔值

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

数据描述
False布尔值
NoneNone类型
0整数
0.0浮点数
''空字符串
[]空列表
()空元组
{}空字典
set()空集合

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

bool(0.0)

逻辑运算 

a = not 1 or 0 and 1

 运算过程:

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

1. not 1  结果为False

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

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

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

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

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

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

六、位运算符

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

位运算符描述示例
&从左按位与2&1结果0
|从右按位或2|1结果3
^按位异或,相同为0,不同为12^1结果3
~按位取反~2结果为-3
<<左移运算符4<<2结果为16
>>右移运算符4>>2结果为1

七、成员运算符

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

成员运算符有两个:

运算符描述示例
inin 如果在指定的序列中找到值返回 True,否则返回 False'a' in 'apple',返回值True
not innot in 如果在指定的序列中没有找到值返回 True,否则返回 False
'x' not in ['1',2,'x']

八、身份运算符

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

运算符描述示例
isis 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falsea is b 结果是True
is notis 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

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

九、运算符的优先级

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

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


总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游客520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值