Python3中的运算符(三)

算术运算符

算术运算符是以数值(字面量或变量)作为其操作数,并返回一个单个数值。这是最简单,也最常用的符号,尤其是数字的处理,几乎都会使用到算术运算符号。

#编译相关代码
mas1 = 10
mas2 = 20
#加运算#
print(mas1+mas2)

#减运算#
print(mas1-mas2)

#乘运算#
print(mas1*2)
print(mas2*2)

#除法运算#
print(mas1/mas2)
print(mas1%mas2)

#幂运算*
print(mas1**2)

#向下取整#
print(mas1//mas2)
算术运算符作用实例
+加法运算,将加号两端的数值相加>>>print(mas1+mas2)
-减法运算,将减号左端的的数值减去减号右端的数值>>>print(mas1-mas2)
*乘法运算, 乘号两端数值相乘或是返回一个被重复若干次的字符串>>>print(mas1*2)
/除法运算>>>print(mas1/mas2)
%取模 - 返回除法的余数>>>print(mas1%mas2)
**幂运算,返回x的y次幂>>>print(mas1**2)
//取整除,返回商的整数部分>>>print(mas2//mas1)

位运算符

链接: 在线进制转换.
位运算符按二进制位对值进行操作,即把数字看作二进制来进行计算的。我们给变量赋值数值是以十进制数的形式赋值。例如mas1 = 10,这个10就是十进制数,转化为二进制数0000 1010。

#选择二进制数赋值给mas1、mas2
mas1 = 0b10101000
mas2 = 0b01010111

#按位与运算,从左到右即高位到低位
#10101000
#01010111
#00000000  //这个是运算结果,与运算左右数值相等则为1,与运算左右两边数值不相等则为0,如1&1=1、1&0=0
print(mas1&mas2) #输出十进制数,如果需要输出二进制就写成(bin(mas1|mas2))

#按位或运算
#10101000
#01010111
#11111111 //这个是运算结果,或运算左右数值只需有一个是1即为1,如1|1=1、1|0=1、0|0=0
print(mas1|mas2)

#按位异或运算
#10101000
#01010111
#11111111 //这个是运算结果,异或运算左右数值都不相等即为1,0^0=0、1^1=0、1^0=1
print(mas1^mas2)

#按位取反
#10101000	//原码,原码的反码是原码按位取反的补码,这个补码返回来求结果
#01010111 //这个是运算结果、按位取反是取相反值
print(~mas1)

#左移
#<<数值,这个数值就是mas1左移位数,通常用0顶替
#10101000左移2位即是101000、后面缺2位即补充2个0,变成(mas1<<2) = 10100000
print(bin(mas1<<2)[4:13])
#右移
print(bin(mas2>>2)[4:13])
位运算符作用
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
I按位或运算符:只要对应的两个二进位有一个为1时,结果位就为1
^按位异或运算符:当两对应的二进位相异时,结果为1
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
<<运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0
>>把‘>>’左边的运算数的各二进制位全部右移若干位,>>右边的数字指定了移动的位数

比较运算符

比较运算符是指可以使用下列运算符比较两个值。当用运算符比较两个值时,结果是一个逻辑值,不是 TRUE(成立) 就是 FALSE(不成立)的运算符号。

#比较大于号两边数值大小,如果左数值大于右数值则结果为TRUE,否则为FALSE
print('1大于2?', 1 > 2)
print('2大于1?',2 > 1)

#比较小于号两边数值大小,如果左数值小于右数值则结果为TRUE,否则为FALSE
print('1小于2?', 1 < 2)
print('2小于1?', 2 < 1)

#比较等号两边数值大小,如果左数值等于右数值则结果为TRUE,否则为FALSE
print('3等于3?', 3 == 3)
print("4等于3?", 4 == 3)

#比较>=两边数值大小,如果左数值大于等于右数值则结果为TRUE,否则为FALSE
print("2*1大于等于2?", 2*1 >= 2)

#比较<=两边数值大小,如果左数值小于等于右数值则结果为TRUE,否则为FALSE
print("2*1小于等于2?", 2*1 >= 2)

#判断!=两端数值是否不相等,不相等结果为TRUE,否则为FALSE
print("2!=1?"2 != 1)
比较运算符作用
>大于运算符,如果>前面的值大于后面的值,则返回结果为TRUE,否则返回 FALSE
<小于运算符,如果<前面的值小于后面的值,则返回结果为TRUE,否则返回 FALSE
==等于运算符,如果==前面的值等于后面的值,则返回结果为TRUE,否则返回 FALSE
>=大于等于运算符,如果>=前面的值大于或等于后面的值,则返回结果为TRUE,否则返回 FALSE
<=小于等于运算符,如果<=前面的值小于等于后面的值,则返回结果为TRUE,否则返回 FALSE
!=不相等运算符,如果!=前面的值不等于后面的值,则返回结果为TRUE,否则返回 FALSE
is
is not

赋值运算符

赋值运算符是“=”。他的优先级别低于一般的运算符,所以对该运算符往往最后读取。一开始可能会以为它是“等于”,其实不是的。它的作用是将一个表达式的右值赋给左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。

// An highlighted block
mas1 = 3	#3赋值给mas1
mas2 = 4	#4赋值给mas2
mas3 = mas1 + mas2	#变量mas1与变量mas2相加后赋值给mas3
print(mas3)
各类赋值运算符作用
=赋值运算符,=右边的值赋值给左值(变量、指针、表达式)
+=加法赋值运算符,a+=b等价于a = a +b
-=减法赋值运算符,a-=b等价于a = a -b
*=乘法赋值运算符,a*=b等价于a = a *b
/=除法赋值运算符,a/=b等价于a = a /b
%=取模赋值运算符,a%=b等价于a = a %b
**=幂运算赋值运算符,a**=b等价于a = a **b
//=取整赋值运算符,a//=b等价于a = a //b
:=海象运算符,在表达式内部为变量赋值。

海像运算符,下面这个是官方例子:

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")
#如果在括号内直接将len(a)赋值给n,系统会报错,如果运用(=)则无错误。

身份运算符

身份运算符用于 比较 两个对象的 内存地址 是否一致 —— 是否是对同一个对象的引用。

身份运算符解析实例
isis 是判断两个标识符是不是引用同一个对象a is b,类似于id(a) == id(b)
is notis not 是判断两个标识符是不是引用自不同对象a is not b

//id()函数是获取括号内对象的内存地址
a = 10
b =10
print(a is b)

C = [1,2]
D = [1,2]
print(id(C))
print(id(D))
print(C is D)
mas1 = [1,2]
C = mas1
D = mas1
print(id(C))
print(id(D))
print(C is D)

#可以看出 is与is not是根据内容地址进行判断的,而==是根据内容值判断的

成员运算符

判断序列中是否存在相应的值,序列一般表示为字符串、列表、元组等集合:

成员运算符解析
in如果在指定的序列中找到值返回 True,否则返回 False。
in not如果在指定的序列中没有找到值返回 True,否则返回 False。

逻辑运算符

逻辑运算符解析
notnot x,如果x为True则返回false。如果x为False则返回True。
andx and y,如果x为True则返回y值。如果x为False则返回False。
orx or y, 如果x为True则返回x,如果x为False返回y值。

运算符优先级

运算符是区分级别的,编译环境优先运算级别高的运算符:
最高到最低优先级数

运算符解析
**优先级数最高
按位翻转
*, /, %, //乘、除、求余和取整
+,-加、减
>>, <<右移,左移
&
^, I位运算符
<=,<,>,>=比较运算符
==,!=等于运算符
=,%=,/=,+=,-=,*=,**=赋值运算符
is,is not身份运算符
in, in not成员运算符
not,and,or逻辑运算符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值