python 对象的异或运算符_python的运算符

算数运算符

算数运算符主要用作于计算机的算数运算

种类符号作用+加法、字符串的拼接

-减法

*乘法、字符串的重复

/除法

//地板除(除法)

%取余(除法)

**幂运算

+# 数字类型的加法运算

print(1 + 1)                # 2

print(False + 1)            # 1

print(0j + 1)               # (1+0j)

# 字符串的拼接

var1 = 'hello'

var2 = 'motherland'

print(var1 + ' ' + var2)    # hello motherland

*# 数字类型的乘法运算

print(1 * 1)                # 1

print(False * 1)            # 0

print(0j * 1)               # 0j

# 字符串的重复

var1 = 'hello'

print(var1)                 # hello

print(var1 * 2)             # hellohello

print(var1 * 3)             # hellohellohello

/# 数字类型的除法运算,结果总是小数,至少返回一位小数

print(1 / 1)                # 1.0

print(False / 1)            # 0.0

# print(False / False)        # 除数不能为0

print(10 / 5)               # 2.0

print(10 / 3)               # 3.3333333333333335

print(10 / 2.25)            # 4.444444444444445

//# 数字类型的除法运算

# // 的运算结果只有在除数或者是被除数为小数的时候才是小数,并且永远是一位小数,小数位为0

print(1 // 1)                # 1

print(100 // 5)              # 20

print(10.9 // 1)             # 10.0

print(10 // 1.5)             # 6.0

print(10.5 // 1.1)           # 9.0

print(10.0 // 3)             # 3.0

%# 不会将数除尽,求出除法中的余数

print(10 % 3)       # 1

# 如果被除数和除数都是负数,余数是正常余数取反

# 如果除数是负数,余数是正常余数+除数

# 如果被除数是负数,余数就是第二种情况的取反

print(10 % 3)       # 1

print(-10 % -3)       # -1

print(10 % -3)       # -2

print(-10 % 3)       # 2

print(11 % 4)       # 3

print(-11 % -4)     # -3

print(11 % -4)      # -1

print(-11 % 4)      # 1

print(15 % 6)       # 3

print(-15 % -6)     # -3

print(15 % -6)      # -3

print(-15 % 6)      # 3

**# 求一个数的幂次方

print(2 ** 1)       # 2

print(2 ** 2)       # 4

print(2 ** 3)       # 8

print(2 ** 4)       # 16

-# 数字类型的减法运算

print(1 - 1)                # 0

print(False - 1)            # -1

print(0j - 1)               # (-1+0j)

比较运算符

概念比较两个值是否相同,结果只会是布尔值,条件成立返回True,反之False;

可以比较任何类型的数据;

python没有向其它语言中一样区分等于和绝对等于的概念,等于就是绝对等于,是区分数据类型的;

种类符号作用>大于

>=大于等于

<=小于等于

==等于

!=不等于print(1234 == '1234')       # False

print(1234 == 1234)         # True

赋值运算符

概念给某个数据赋予新的值

除了=之外的其它赋值运算符,都是在算数运算符的基础上添加了=,使用的方法则和原有的意义基本相同,是将算数出来的结果替换原有的数据

比较两个值是否相同,结果只会是布尔值,条件成立返回True,反之False;

python没有其它语言的自增和自减概念;

种类符号作用=赋值

+=运算替换

-=运算替换

*=运算替换

/=运算替换

//=运算替换

%=运算替换

**=运算替换# 直接赋值

var = 'msr'

print(var)      # msr

var = 'hello'

print(var)      # hello

# 通过算数运算得出结果,然后替代原有的数据

var *= 3

print(var)      # hellohellohello

成员运算符

作用

用于针对容器型数据,查询某个数据是否是容器当中的元素;返回布尔值,条件成立返回True,反之False;

种类符号作用in查询的元素是否在容器当中

not in查询的元素是否不在在容器当中

字符串# 只可以连续的元素,就是说不支持模糊查询

var = '你是Java的大神,他是PHP的开发者,我是Python的小白。'

print('Java的大神' in var)         # True

print('Python的小白' not in var)   # False

字典# 在字典当中只会判断键,不会判断值

var = {'及时雨': '宋江', '玉麒麟': '卢俊义'}

print('及时雨' in var)  # True

print('宋江' in var)  # False

身份运算符

作用

检测两个数据在内存当中是否是同一个值,返回布尔值

种类符号作用is是同一地址

is not不是同一地址

Python的内存优化整型:-5 ~~ 正无穷的范围内的数内存地址相同

浮点型:非负数的内存的地址相同

布尔型:同值内存地址相同

复数:实数+虚数的的格式永不相同

容器类型:只有字符串和空元组的情况相同intvar = 100

strvar = 'hello'

# 利用id()函数检查是否是同一地址

res = id(intvar) == id(strvar)

print(res)      # False

# 使用身份运算符

res = intvar is strvar

print(res)      # fasle

逻辑运算符

作用

判断运算符两边的布尔值,返回布尔值

种类符号作用特点and逻辑与:两遍的数据都为真,返回True全真为真,一假则假

or逻辑或:两遍的数据有一个为真,返回True全假为假,全假为假

not逻辑非:将后面的数据的逻辑值反转真为假,假为真

and——逻辑与运算符两遍的值都为真,返回真,其余情况返回假# 为真的概率低

res = True and True# True

res = True and False# False

res = False and True# False

res = False and False# False

or——逻辑与运算符两遍的值都为假,返回假,其余情况返回真# 为假得概率低

res = True or True# True

res = True or False# True

res = False or True# True

res = False or False# False

not——逻辑非将左侧的进行反转,真的转为假,假的转为真res = not True# False

res = not False# True

布尔值为假的十种情况还记得吗???0     0.0      0j      False     ""      []      ()       set()     {}      None

逻辑短路True or 表达式

False and 表达式

在逻辑表达式中,or的特点是一真则真,所以True or首先是发现前面已经有了真,所以or就无需再检查后面的数据是真是假,直接返回前面的真,导致不在执行后面的代码,造成逻辑短路。

False and同理,and一假则假,所以当and前面出现假的时候,就不在需要知道后面的数据是真是假,直接返回假,造成逻辑短路。# 逻辑短路,不会执行后面的print函数

True  or  print('hello world')

False and print('hello world')

# 没有短路

False  or  print('hello world')

True   and print('hello world')

逻辑运算符的优先级()   >   not    >    and     >     or

和数学的运算一样,要先运算括号内的数据。

在多逻辑运算符的算数中,按照优先级计算。0 or 6 and not 9 and (1 or 3)

# 按照优先级依次运算,得出结果为False

位运算符

作用

位运算符用二进制数补码进行运算

种类符号作用&按位与

|按位或

~按位非

^按位异或

<

>>右移位

&(按位与)

将数字的补码中,同位数都为真的保留下来,组合成新数字19的补码:                             0000 ... 10011

15的补码:                             0000 ... 01111

同位数都为真的保留下来:  0000 ... 00011  =>  3print(15 & 19)

|(按位或)

将数字的补码中,同位数只要有一个为真就保留下来,组合成新数字19的补码:                                 0000 ... 10011

15的补码:                                 0000 ... 01111

同位数一个为真的保留下来:  0000 ... 11111  =>  31print(15 | 19)

^(按位异或)

将数字的补码中,同位数相同返回假,不同返回真,组合成新数字19的补码:                     0000 ... 10011

15的补码:                     0000 ... 01111

同位数不同的返回真:  0000 ... 11100  =>  28print(15 ^ 19)

<

整个数字向左移位,原位补0,组合成新数字

左移位相当于做乘法,左移n位,就相当于乘 2 的n次幂19的补码:0001  0011

左移1位:  0010  0110  =>  38print(19 <

>>(右移位)

整个数字向右移位,原位补0,溢出消失,组合成新数字

右移位相当于做除法,左移n位,就相当于除以 2 的n次幂19的补码:0001 0011

右移1位:  0000 1001   =>  9print(19 >> 1)

~ 按位非

按位取反,包括符号位。

公式:-(n + 1)十进制数:19

原码:    0001 0011

反码:    0001 0011

补码:    0001 0011(先得到一个数的补码)

按位非:1110 1100(按位非,包括符号位在内的全部取反)

补码:    1110 1100(结果还是补码)

取反:    1001 0011

原码:    1001 0100 (根据这个补码还原的原码)

十进制数:-20-(19 + 1) = -20print(~19)

运算符总结:

运算符种类算术运算符:      +      -      *      /      //      %      **

比较运算符:      >      <      >=      <=      ==      !=

赋值运算符:      =      +=      -=      *=      /=      //=      %=      **=

成员运算符:      in     、  not in

身份运算符:      is     、  is not

逻辑运算符:      and   、   or  、    not

位运算符:          &      |      ^      ~      <<      >>

运算符优先级

权重从小之下当多种运算符混合使用:

算数      >      位      >      比较      >      身份      >      成员      >      逻辑      >      赋值

一元运算符      >      二元运算符

一元运算符:同一时间只操作一个值,比如按位非(~19)、逻辑非(not True)

二元运算符:同一时间操作两个值,多数是这样的,比如幂运算(2 ** 3)、逻辑与(True and False)

算数运算符:

幂运算      >      乘除      >      加减

位运算符:

按位非      >      左右移      >      按位与      >      按位异或      >      按位或

逻辑运算符:

()      >      not      >      and      >      or

赋值运算符:

= 最小

小经验

这是我的一点心得:

写出机器看得懂的代码是行业门榄,质量高的代码是行业的水准,让人看得懂的代码是行业的标杆。一个优秀的编程工作者写的代码会看起来更加的直观。

在编写复杂的运算式的时候要注意尽量的让代码直观,比如可以使用括号。下面的两行运算式的结果一样,但是给人的截然不同。# 你也可以试着根据运算符优先级 推算一下结果

res = 5 + 5 <

print(res)

res = (5+5) <

print(res)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

希望我不会“伤心至死”

刚收到鬼古女的最新小说《伤心至死——万劫》。这好象是他的第三部长篇&#xff0c;上海人民出版社出版2005年10月出版。也是他《伤心至死》悬疑系列的第一部。我和鬼古女只在网上有过交流&#xff0c;据说这是一对旅居美国的神秘夫妇的笔名。我喜欢他的小说&#xff0c;曾写过…

同盟与对抗:谈《少女杜拉的故事》中的治疗关系(转)

《少女杜拉的故事》是弗洛伊德众多精神分析实例报告中最具代表性的一例。它记叙了弗洛伊德对杜拉神经症的治疗过程&#xff0c;从中我们可以了解到弗洛伊德精神分析学说的理论及运用。杜拉是一个18岁的女孩&#xff0c;她由于反复咳嗽、声嘶、呼吸困难而来就诊&#xff0c;弗洛…

圣诞是我们这样过的,美女如云 (图)

圣诞是这样子过的&#xff0c;美女如云&#xff0c;只可惜靓崽忒少&#xff0c;唉&#xff0c;美女少了没劲&#xff0c;美女多了呢也麻烦&#xff0c;况且还有藏族美女给敬酒唱歌。地点是在中华民族园边上的茶马驿站&#xff0c;吃的是“马帮菜”&#xff0c;知道什么是“马帮…

java对象复制_Java对象的复制三种方式

Java对象的复制三种方式概述在实际编程过程中&#xff0c;我们常常要遇到这种情况&#xff1a;有一个对象A&#xff0c;在某一时刻A中已经包含了一些有效值&#xff0c;此时可能 会需要一个和A完全相同新对象B&#xff0c;并且此后对B任何改动都不会影响到A中的值&#xff0c;也…

新年快乐

同时两个朋友发来的&#xff0c;打开了还挺有意思。在新年到来的最后一天&#xff0c;收到这个小小的礼物还是很高兴&#xff0c;说明人家还记得你&#xff0c;常说君子之交淡如水&#xff0c;水其实我们不缺&#xff0c;我们往往缺的就是一句小小的问候&#xff0c;并且在一个…

看徐坤的话剧《性情男女》

昨晚应邀去看了徐坤的话剧《性情男女》&#xff0c;说实在话好的超乎了我的想象。这几年话剧多被国外经典剧目或者历史剧或者老剧目统治&#xff0c;现实题材的话剧少之又少&#xff0c;而我想看的更几乎为零。所以这个剧确实应该让我拍手。我们这些饱经沧桑的人、老油条或者麻…

java 字符串子串_java实现字符串匹配求两个字符串的最大公共子串

本文实例讲述了java实现求两个字符串最大公共子串的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;最近在项目工作中有一个关于文本对比的需求&#xff0c;经过这段时间的学习&#xff0c;总结了这篇博客内容&#xff1a;求两个字符串的最大公共子串。算法思想&a…

读《伤心至死》兼谈恐怖悬疑小说的写作问题

收到鬼古女寄来的最新小说《伤心至死万劫》&#xff0c;这是他第三部长篇&#xff0c;上海人民出版社2005年10月出版&#xff0c;也是他《伤心至死》悬疑系列的第一部。我和鬼古女只在网上有过交流&#xff0c;据说这是一对旅居美国的神秘夫妇的笔名。我喜欢他的小说&#xff0…

java继承的举例_java继承实例

实例需求&#xff1a;实现一个名为Person的类和它的子类Employee&#xff0c;Manager是Employee的子类&#xff0c;设计一 个类Add()用于涨工资&#xff0c;普通员工一次能涨10%&#xff0c;经理能涨20%。具体要求如下:(1)Person类中的属性有&#xff1a;姓名name String(类型)…

与狼共舞的女钢琴家

刚看了法国传奇女钢琴家埃莱娜格里莫的自传《野变奏》&#xff08;上海教育出版社出版&#xff09;&#xff0c;很精彩。我有幸收藏到她几张原版的唱片&#xff0c;经常会拿出来听听。她是我喜欢的哈斯基尔、阿格里奇和皮雷斯等女钢琴家之后&#xff0c;我所知道的最年轻的女钢…

究竟谁在买书??

今天和孩子去美术馆附近的百花美术商店买绘画用品&#xff0c;顺便到了三联奋图书中心。<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />几年来&#xff0c;我对去书店是非常矛盾的。读点书的人&#xff0c;不去书店淘书显然有愧…

java 使用string_java中string怎么使用

展开全部以下是关于string的七种用法&#xff0c;注意哦&#xff0c;记得要时常去查看java的API文档&#xff0c;那个里面也有很详细32313133353236313431303231363533e78988e69d8331333363393033的介绍1>获取1.1&#xff1a;字符串中包含的字符数&#xff0c;也就是字符串的…

情人节的第一道小点心

情人节“蕉叶”泰国餐厅的第一道小点心&#xff0c;用芭蕉叶包的西米露甜点&#xff0c;乍看像两个蜡烛&#xff0c;一黄一白&#xff0c;细看又似两个人的皮肤&#xff0c;一深一淡。绵软、清凉&#xff0c;入口即融&#xff0c;妙不必言。

与孩子去航空博物馆

北京航空博物馆草地广场——主题&#xff1a;四面楚歌&#xff0c;草木皆兵&#xff0c;红装小女&#xff0c;信步闲庭。航空博物馆的一个角落——主题&#xff1a;灰色里的一点红&#xff0c;肃杀中的一抹暖意

java 操作序列_JAVA序列化操作详解

一、概述很多时候我们需要将对象的信息以文件的形式存储到硬盘上以便以后可以恢复使用。我们可以按照一定的格式将变量的值依次写到特定格式的文件中。但有时候我们希望只有我们自己可以读懂它并且修改它&#xff0c;这就是序列化的作用。概念&#xff1a;将对象转化为字节序列…

为女儿示范的两张石膏像素描

26年没画了&#xff0c;为了给女儿学习石膏素描&#xff0c;示范一下&#xff0c;斗胆画了两张。材料&#xff1a;复印纸&#xff0c;4B铅笔&#xff0c;用时30分钟。这是一周前画的。材料&#xff1a;普通稿纸&#xff0c;2B铅笔&#xff0c;用时25分钟。用我当时少年宫美术老…

你好,弗朗索瓦丝·萨冈

“世界上只有两种东西最出名&#xff0c;新小说和萨冈。萨冈是个作家&#xff0c;是法国的通俗小说家&#xff0c;世界上所有的国家都翻译了她的作品。”“新小说”派的掌门人罗伯-格里耶如是说。格里耶肯定不喜欢萨冈&#xff0c;但是他所鼓吹的“新小说”绝对没有萨冈有名。一…

java中类与类的关系_Java中类与类的关系

在java中类和类的关系大致分三种&#xff1a;泛化、关联、依赖。1. 泛化(Generalization)"XX是一个XX"关系(is a),通常使用的关键词为 extends、implements继承:继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类&#xff0c;新的类能吸收已有类的数据…

徐坤用话剧震了我们一道

年前&#xff0c;徐坤为人艺小剧场写了个话剧《性情男女》&#xff0c;请几个朋友去看&#xff0c;要求是必须携夫人或者女朋友前往。我开始没明白她的用意&#xff0c;就带女朋友去了。剧场门口&#xff0c;徐坤穿着小红羽绒袄诡秘地迎接我们。 当我走进小剧场时&#xff0c;一…