第三章 运算符

"""

第三章 运算符

运算符:就是有特殊计算规则的符号

操作数:参与运算的数据

运算符可以根据操作数的不同,分为N元运算符

"""

# 1+2  二元运算符

# a-b

# -1   一元运算符

# 运算符和操作数结合起来,就是表达式

"""

1. 算数运算符

+ - * /

// 向下取整

%  取模

** 求幂

"""

a=21

b=10

print(a+b)

print(a-b)

print(a/b)

print(a*b)

# //向下取整,向负无穷大方向取整

# 做除法运算时,商向下取整

print(10//3)

print(-10//3)

# %取模  是数学意义上取余数

# 被除数 = 除数 * 商+余数

# 余数  = 被除数-除数*商 需要记住这样的公式

# 在python中 % 运算中 商:向下取整

# 10%3

# 10-3*3=1

print(10%3)

# -10%3

#-10-3*-4=-10+12=2

# -3.3335   -4

print(-10%3)

# 真正的取余math函数下

#** 求幂

print(2**5)

# 2. 比较运算符(关系运算)

# 返回值是布尔类型

# ==判断内容是否相等

# !=判断内容是不是不相等   python2中<>

# >  >=  <  <=

print(21==21)

print(21!=21)

print(21<22)

# 3. 身份运算符:判断对象的内存地址是否相同(对象是否是一个)

# is   : 判断是同一片内存

# is not:判断不是同一片内存

a=1

b=1

#基础数据类型(数值、字符串、字节、布尔)

print(a==b)

print(a is b)

print(id(a),id(b),"判断a的id 和b的id")

# 如果是列表这种对象

li1=[1,2,3]

li2=[1,2,3]

print(li1==li2)

print(li1 is li2)

# java中

# ==跟python中is类似代表内存是否一个

# equals跟python中==类似

# id(o)  能够显示当前o对象所在的内存地址

print(id(li1),id(li2))

# is 和==的区别

#is比较的是内存(对象)是否是同一个

#==比较的是内容是否相同

#  练习:

   #1. 7%3    -7%3     7%-3

# 余数=被除数-除数*商  商向下取整

# 7-3*2=1

print(7%3)

# -7-3*(-3)=2

print(-7%3)

# 7-(-3)*(-3)=-2

print(7%-3)

  #2. 定义一个a=5  b=2+3 判断是一下 a==b ?  a is b?

a=5

b=2+3

print(a==b)

print(a is b)

# 4. 逻辑运算符(布尔运算符)

# 返回值可能是布尔类型,也可能是计算值

# and  与:如果and左右 两侧都是True,则返回True,否则返回False

# or   或:如果or左右两侧都是False,则返回False,否则返回True

# not  非:布尔结果取反

print(True and True)

print(True and False)

print(False and False)

print(False or False)

print(True or False)

print(True or True)

print(3==3 and 2!=3)

a=1

b=2

c=3

print(aa)

print(aa)

# 记住,任何一个 类型都可以转换成布尔 类型

# 在逻辑运算符的操作中可以直接使用其他类型。

print(1 and 2)

# 短路现象(重要):

# and : 当第一个表达式为假,则后面的表达式不执行

# or:  当第一个表达式为真,则后面的表达式不执行

# True and True ----True

# False and --------False

# 0 and print("ddddddd")  and的短路现象的证明

# 1 and print("ddddd")  and的短路现象的证明

# True or True/False-----True 

# False or True/False- 

# 1 or print("cccccc")  or短路现象的证明

print(0 or print("cccccc"))  or短路现象的证明

# s=null

# s.fun()

# if s!=null and s.fun()....

a=print("hello world")

print(a)

print(bool(None))

print("aaa")  or  print("bbbb")

print(0 or print("cccccc"))

# a=input("请输入一个数")

# print(a)

#

# s=abs(-100)

# print(s)

# 5. 位运算

"""

正数:原码,反码,补码就是二进制码

负数:

原码:正数的二进制,最高位变1

反码:符号位不变,其余取反

补码:反码+1

计算机中都是以补码形式存储、运算,不管是正数还是负数

补码变回原码:补码基础上找到反码,+1----变回原码

             跟-1 之后再找反码是一致的。

"""

# -10 取原码反码和补码

# (1)先取合适的位数4位机或者8位机 16位机

# 4位机,最小的负数 -7

# 8位机,最小-127

# 16位机,最小的负数

# (2)对应正数的原码找到

#在8位机上

#10 的原码 00001010

# (3)将最高位变1 ,就是定义负数的原码

#-10的原码 10001010

# 反码     11110101

# 补码     11110110

# 补码参数运算之后,仍然得到补码,需要再变回原码。

# 需要观察最高位是不是1,

# 如果最高位是1,那么证明结果是负数,就必须变回原码。

# 如果最高位是0,那么证明结果是整数,则不需要再改变(正数的原码反码补码相同)

# -1+2  使用手工模拟计算机

"""

(1) 估计使用四位机进行运算

(2) 获得两个操作数的补码:如果是负数,

需要先找到对应正数的原码,再找到负数的原码,再找到负数的反码,补码

(3) 运算的 结果,观察最高位是不是1,如果是1,那么证明是负数,需要变回原码。

"""

# 补码

# -1  1111

# 2   0010

#    10001  0001  十进制 1

# 练习:-3-4

#-3  0011----- 1011-----1100--------1101补码

#-4  0100----- 1100-----1011--------1100补码

                                 # 11001--负数---补码

                                 #  1111-----原码  -7

# -6-6

# 8位机

#-6   00000110------10000110-------11111001-----11111010 补码

# 11111010

# 11111010

#111110100---11110100补码----10001100----十进制 -12

print(bin(-6-6))

# 位运算

#&  按位与

#|  按位或

#^  按位异或

#~ 按位取反

#(1)&  按位与:同时为1,结果为1,否则为0

# 0010

# 1111

# 0010  按位与结果

# 0010

# 0101

# 0000  按位与结果

# -1&2

print(-1&2)

# -1   1111

# 2    0010

#      0010 ---十进制2

# 60&-13

# print(60&-13)

# 60---------------00111100补码

# -13--10001101----11110011补码

#                  00110000原码反码和补码

# 十进制            2**5+2**4=48

print(bin(13))

#(2)|  按位或:两个同时为0时,结果为0,否则为1

# 0101

# 1100

# 1101

print(60|-13)

# 60---------------00111100补码

# -13--10001101----11110011补码

#                  11111111补码----10000001--原码  -1

# (3)^ 按位异或,如果两个一样则为0,不一样则为1

# 0101

# 1100

# 1001

print(60^-13)

# 60---------------00111100补码

# -13--10001101----11110011补码

#                  11001111补码----10110001 原码  -(2**5+2**4+1)=-49

# (4)按位取反~:全部取反(包括符号位)

# 0010

# 1101

print(~60)

# 60---------------00111100补码

#                  11000011补码-----10111101原码  -61

# print(2**5+2**4+2**3+2**2+1)

print(~-13)

# -13--10001101----11110011补码

#                  00001100补码------2**3+2**2=12

# 6.赋值运算符

# =赋值

# += 自加

# -=   *=   /=   %=  **=

a=20

# a=a+1

a+=1

print(a)

a**=3

print(a)

# 7.成员运算符

# in    :判断元素是否在一个序列中

# 返回值是布尔类型

# not in

s="hello"

print("h" in s)

print("h" not in s)

# 运算符的优先级

# 算数运算符> 比较运算符 > 逻辑运算符> 赋值运算符

y=3==5 and 6<4

print(y)

# 可以使用()调整优先级,计算机中没有[]  {}

# 运算符运算的时候体现的是结合性,不是运算性

# a+b*c

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,149评论 0 13
  • 1、逻辑运算符 与c、c++、java、swift等语言不同,python逻辑运算符不是&&,||,!等符号,而是...
    运柱阅读 198评论 0 0
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,820评论 2 16
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    许先生__阅读 605评论 0 3
  • 这几天看了《战狼2》这部电影,我深为我是一个中国人而感到骄傲。电影中,无论是老何与冷锋的军礼相敬还是冷锋身披国旗驶...
    墨寰儒阅读 587评论 1 3