Python基础 Python中的运算符

Python中常用的运算符


算术运算符:

标准算术运算符:加(+)、减(-)、乘(*)、除(/)、整除(//)

print(1+1) #加法运算
print(1-1) #减法运算
print(2*4) #乘法运算
print(1/2) #除法运算
print(11//2) #整除运算

 


取余运算符:%

print(11%2)

 


幂运算符:**

print(2**2)#2的2次方
print(2**3)#2的3次方

 


难点:一正一负的整除,和取余时

print(9//-4) #-3
print(-9//4) #-3

这个例子中他们的结果都是-3,为什么呢?

原因是,当一正一负时我们会选择向下取整,-9/4 时结果为2.2***,因此向下取整即为-3

print(9%-4) #-3
print(-9%4) #3

当一正一负取余时,我们发现,9%4 = -3,而-9%4 = 3 这是为什么呢?

原因是 ,当出现一正一负取余时,我们需要使用公式,余数 = 被除数-除数*商


赋值运算符

执行顺序:右 --> 左

#运算符是从右向左
i = 3 + 4
print(i)

结果为7 


支持链式赋值 --> a = b = c = 10

#(链式赋值)
a = b = c = 20
print(a,id(a))
print(b,id(b))
print(c,id(c))

输出结果后发现他们的输出结果是一样的,并且他们的id是一样的

说明,20先赋值给c,c赋值给b,b赋值给a

 这就是来链式赋值


支持参数赋值 --> +=,-=,*=,/=,//=,%=

a = 20
a += 20
print(a)
a -= 20
print(a)
a *= 20
print(a)
print(type(a))
a /= 3
print(a)
print(type(a))
a //= 2
print(a)
print(type(a))
a %= 3
print(a)
print(type(a))

 得到上述结果,我们发现当a/=3 时结果变为了13.3333,类型变为了float,那之后的类型也将全部变为float


支持系列解包赋值 --> a,b,c = 10,20,30(要求等号左侧和右侧个数相同,否则会报错)

#支持系列解包赋值
a,b,c = 20,30,40
print(a,b,c)
#将下面两值进行交换
x,y = 10,20
x,y = y,x
print('交换之后',x,y)

 

解包赋值可以快速交换两个变量的值,而在其他的编程语言当中需要借助第三个中间变量,这体现了python的强大


 

比较运算符

> < >= <= !=

== --> 对象value的比较

is,is not -->对象的id比较

#比较运算
a,b = 10,20
print('a>b么',a,b) #False
print('a<b么',a,b) #True
print('a>=b么',a,b) #False
print('a<=b么',a,b) #True
print('a==b么',a,b) #False
print('a!=b么',a,b) #False

通过以上代码我们发现,通过比较运算符输出的结果都为bool类型

而上面,一个=称为赋值运算,两个=称为比较运算

一个变量由三部分组成,标识,类型,值

==比较的是值,比较对象的标识是is

a = 10
b = 10
print(a == b)
print(a is b)

最终输出结果都为True,说明a和b的value相等,a和b的标识(id)也相等

list1 = [11,22,33,44]
list2 = [11,22,33,44]
print(list1 == list2)
print(list1 is list2)
print(id(list1))
print(id(list2))

而通过我们没学过的知识列表来比较,发现

最终输出结果第一个为True,第二个为False

发现他们的值一样,但是标识(id)不同 

a = 10
b = 10
print(a == b)
print(a is not b)#a 的id与b的id不相等

我们将上面代码改为a is not b

发现输出False 

这就是python的比较运算符,比较结果输出bool类型


布尔运算符

and,or,not,in,not in

and 当两个运算数都为True时,运算结果为true

a,b = 1,2
print(a == 1 and b == 2) #True and True = True
print(a == 1 and b < 2 ) #True and False = False
print(a != 1 and b == 2) #False and True = False
print(a != 1 and b != 2) #False and False = False

or 只要有一个运算数为True,运算结果为True

a,b = 1,2
print(a == 1 or b == 2) #True or True = True
print(a == 1 or b < 2 ) #True or False = True
print(a != 1 or b == 2) #False or True = True
print(a != 1 or b != 2) #False or False = False

not 对bool类型操作数取反

#对bool类型的操作数取反
f1 = True
f2 = False
print(not f1) #结果就相反为False
print(not f2) #结果就相反为True

in 和 not in

#in 与 not in
s = 'HelloWorld'
print('w' in s)#w在s中 True
print('w' not in s)#w不在s中 False
print('k' in s)#k在s中 False
print('k' not in s)#k不在s中 True

 


位运算符 将数据转成二进制进行计算

位与& --> 对应数位都是1,结果位数才是1

print(4&8) #4按位与8 结果位0

位或| --> 对应位数都是0,结果位数才是0

 print(4|8)#4按位或8 结果为 1100,十进制为12  

左移位运算符<< --> 高位溢出舍弃,低位补0

print(4<<1) #4向左移1位,每左移1位相当于乘2

右移位运算符>> --> 低位溢出舍弃,高位补0

print(4>>1) #4向右移1位 ,每右移一位相当于除2

运算符中的优先级

算术运算符>位运算符>比较运算符>布尔运算>赋值运算

有括号会计算括号中的运算

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

newbeexxs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值