文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一起来了解python的运算符

2024-04-02 19:55

关注

1、算数运算符

小例中:
        a = 5
        b = 3

算数运算符描述小例
+a + b = 8
-a - b = 2
*a * b = 15
/a / b = 1.6666666666666667
//整除a // b = 1
%取余a % b = 2
**a ** b = 125

注:

	(1)、整数经过除法运算后变成浮点数(小数);
	(2)、整除结果只取整数部分,小数点以及后面的数字删除;

取余的四种情况:

1、正常情况
	5 % 3 = 2
2、被除数为负数
	-5 % 3 = 1
	计算过程:
		(-2) + 3 = 1
		在正常情况下的余数前减负号,然后与除数相加得最终结果
3、除数为负数
	5 % -3 = -1
	计算过程:
		2 + (-3)= -1
		在正常情况下的余数,然后与除数相加得最终结果
4、被除数和除数都为负数
		-5 % -3 = -2
		计算过程:
			在正常情况的余数前面加负号,也就是正常情况的余数的相反数

2、比较运算符

比较运算符运算的结果为布尔值,当结果正确时为True(真),当结果错误时为False(假)。

小例中:
a = 1
b = 2

比较运算符描述小例
>大于a > b -->False
<小于a < b -->True
>=大于等于a >= b -->False
<=小于等于a <= b --> True
==等于a == b --> False
!=不等于a != b --> True

注:

>=、<= 只要满足一个条件结果就为真

3、赋值运算符

小例中:
    a = 2
    b = 3

赋值运算符描述小例
=简单的赋值运算符a = b,将b的值赋值给a, 结果a=3
+=加法赋值运算符a += b,等于a = a + b, 结果a=5
-=减法赋值运算符a -= b,等于a = a - b, 结果a=-1
*=乘法赋值运算符a *= b,等于a = a * b, 结果a=6
/=除法赋值运算符a /= b,等于a = a / b, 结果a=0.6666666666666666
//=整除赋值运算符a //= b,等于a = a // b, 结果a=0
**=幂赋值运算符a **= b,等于a = a ** b, 结果a=6

4、成员运算符

成员运算符描述
inx in y,判断x是不是在y中,如果在则返回True,否则返回False
not inx not in y,判断x是不是在y中,如果不在则返回True,否则返回False

使用场景

1、字符串
2、列表
3、元组
4、集合
5、字典
6、---

实例

# 字符串
s = '这里是字符串的成员运算符的实例'
res1 = '字符串' in s
print(res1)		# True
res2 = '字符串' not in s
print(res2)		# False

# 列表
ls = [1 ,2,3]
ls1 = 1 in ls
print(ls1)		# True
ls2 = 1 not in ls
print(ls2)		# False

# 元组
tp = ('1','2','3')
tp1 = '1' in tp
print(tp1)		# True
tp2 = '1' not in tp
print(tp2)		# False

# 集合
st = {1,2,3}
st1 = 1 in st
print(st1)		# True
st2 = 1 not in st
print(st2)		# False

# 字典
dic = {'k1':'v1','k2':'v2','k3':'v3'}
dic1 =  'k1' in dic
print(dic1)		# True
dic2 = 'k1' not in dic
print(dic2)		# False
# 成员运算符 判断字典时 判断的是键 不是那个所对应的值
dic3 = 'v1' in dic
print(dic3)		# False

5、身份运算符

身份运算符描述
isx is y,检测x和y在内存中是不是同一个地址,如果是则返回Ture,否则返回False
not isx not is y,检测x和y在内存中是不是同一个地址,如果不是则返回Ture,否则返回False

实例

# 这些实例都已pycharm运行,python自带解释器有所区别

# 整数、浮点数、布尔值相同地址相等
int1 = 5
int2 = 5
print(int1 is int2)		# True
float1 = 1.0
float2 = 1.0
print(float1 is float2)		# True
bool1 = True
bool2 = True
print(bool1 is bool2)		# True

# 字符串相同地址相等
s1 = '123'
s2 = '123'
print(s1 is s2)		# True

# 元组相同地址相等
tp1 = ()
tp2 = ()
print(tp1 is tp2)		# True

# 列表、集合、字典,无论什么情况地址都不相同
ls1 = []
ls2 = []
print(ls1 is ls2)		# False

6、逻辑运算符

逻辑运算符描述小例
and逻辑与 :全真为真,一假为假2>3 and 3<2 ---->True
or逻辑或:全假为假,一真为真1>2 or 2<1 ---->False
not逻辑非:与原值相反not 2>1 ---->False

实例

a = 1
b = 2
c = False
ser1 = a<b and b>a
print(ser1)		# True
ser2 = a>b or b<a
print(ser2)		# False
ser3 = not c
print(ser3)		# True

逻辑短路

适用一个and或者一个or:
	1、一个and时:x and y,如果x为假,则and后面的y不进行运算,结果直接为False。
	2、一个or时:x or y,如果x为真,则or后面的y不进行运算,结果直接为True。

逻辑优先级

逻辑优先级:() > not > and > or 
res1 = True and (False or True)  # --> True and True
print(res1)		# True

res2 = False or not True  # -->False or False 
print(res2)		# False

res3 = False and True or False and True or False # -->False or False or False
print(res3)		# False

7、位运算符

位运算是先将数据转换成二进制值数据,然后再进行一系列的运算。
位运算符描述
&按位与
|按位或
~按位非
^按位异或
>>右移
<<左移

按位与

进行按位与运算的两个值,相同位置的二进制位值都为1,则结果为1,否则为0。
8 =   1000
9 =   1001
8&9 = 1000 	--->8

按位或

进行按位或运算的两个值,相同位置的二进制位值只要有一个为1,则结果为1。
9 =   1001
10 =  1010
8|9=  1011 	-->11

按位非

进行按位非运算,结果为:原值加一的绝对值即| n+1|
a = 6
b = -6
~a = |6+1| = 7
~b = |-6+1| = 5

按位异或

进行按位异或运算的两个值,相同位置的二进制位值相同,则结果为0,否则为1。
9 =    1001
10 =   1010
9^10 = 0011	-->3

右移

进行右移运算的值,右移几位,则有效二进制位右移几位。等效于n>>m等于n整除2的m次幂。
9 =    1001
9>>1=  0100 	-->4
10 =   1010
10>>2= 0010		-->2

左移

进行左移运算的值,左移几位,则有效二进制位左移几位。等效于n<<m 等于n乘以2的m次幂。
9 =     1001
9<<1 = 10010	-->18
10 =     1010
10<<2= 101000	-->40

8.运算符的优先级

1、乘、除 > 加、减
2、()> not > and > or
3、按位非(~) > 右移(>>)、左移 (<<)> 按位与(&) > 按位异或(^) > 按位或(|)
1、乘、除 > 加、减
2、()> not > and > or
3、按位非(~) > 右移(>>)、左移 (<<)> 按位与(&) > 按位异或(^) > 按位或(|)
一元运算符: 同一时间只操作一个数字运算的 ,例: ~1,-12
二元运算符: 同一时间只操作两个数字运算的 ,例:5 + 3
1、一元运算符优先级 > 二元运算符
2、所有运算符当中 ** 幂运算优先级最高
3、所有运算符当中 = 赋值运算符优先级最低
算数运算符 > 位运算符 > 比较运算符 > 身份运算符 > 成员运算符 > 逻辑运算符>赋值运算符

总结

(1)算数运算符:  + - * / // % **
(2)比较运算符:  > < >= <= == !=   
(3)赋值运算符:  = += -= *= /= //= %= **=
(4)成员运算符:  in 和 not in (针对于容器型数据)
(5)身份运算符:  is 和 is not (检测两个数据在内存当中是否是同一个值)  
(6)逻辑运算符:  and or not
(7)位运算符:    & | ~ ^ << >>

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!   

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯