python~运算符_python运算符

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。在python中有7个运算符,分别有:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。

算术运算符

算数运算符有 +   -   *   /   %   //   **   7个。

注意:使用运算符时,左边对象的 自身方法或 自身的反向方法(如 : __add__ 和 __radd__ )是否符合它们的要求,否者就会报错“TypeError”。

1 、+

用于对象之间的相加,通常用于数字的加法运算和字符串拼接。

a1 = 10b1= 20a2= "abc"b2= "def"

print(a1 +b1)###############################################结果 abcdef

print(a2 +b2)###############################################结果 30

print(a1 +b2)#############################################不符合 __add__ 、 __radd__ 要求会报错#TypeError: unsupported operand type(s) for +: 'int' and 'str'

2、 -

主要用于数字的加减

a1 = 10b1= 20

print(a1 -b1)###########################################结果 -10

3、*

主要用于数字相乘或数据重复多少次。

a1 = 10b1= 20a2= "abc"a3= [1,2]print(a1 *b1)#======> 200

print(a2 * 2)#======> abcabc

print(a3 * 3)  # 列表重复3次#======> [1, 2, 1, 2, 1, 2]

4、/

主要用于数字相除

a1 = 10b1= 20

print(a1 +b1)#=========> 0.5

5、%

取模 - 返回除法的余数

a1 = 11b1= 2

print(a1 %b1)#============> 1

6、//

取整除 - 返回商的整数部分(向下取整)

a1 = 11b1= 2

print(a1 //b1)#===============> 5

7、**

数字幂运算

a1 = 10b1= 2

print(a1 **b1)#==============> 100

比较(关系)运算符

比较运算符有:==   !=    <>    >    =     <=    7个。使用比较运算符时,会返回一个布尔值(True或False)。

1、==

用于比较对象是否相等,与is有区别。

a1 = 10b1= 2a2= int(10)print(a1 == b1)#==================> False

print(a1 == a2)#==================> True

2、 !=  和  <>

这两个运算符都是用于比较两个对象是否不相等。

注:在python3中已经没有<>, 只有!=。

a1 = 10b1= 2a2= 10

print(a1 !=b1)#===================== > True

print(a1 !=a2)#=====================> False

3、>

是否大于。

a1 = 10b1= 2

print(a1 >b1)#============> True

4、<

是否小于。

a1 = 10b1= 2

print(a1 False

5、>=

是否大于等于。

a1 = 10b1= 11a2= 10

print(a1 >=b1)#============> False

print(a1 >=a2)#============> True

6、<=

是否小于等于。

a1 = 10b1= 11a2= 10

print(a1 <=b1)#==============>True

print(a1 <=a2)#==============> True

赋值运算符

赋值运算符是用于给变量赋值的运算符。包括 = 和 =与算术运算符的结合( +=   -=   *=   /=   %=    //=    **= ),共8个。

1、=

把等号右边的值赋给左边的变量,不参与算术运算。

a = 1b= "hello"c= [1, 2, 3]

2、+=

和原来的值相加并重新赋值给自己。

a = 11a+= 10  #等价于:a = a + 10

b= [1, 2]

b+= [3, 4]print(a)#==================> 21

print(b)#==================> [1, 2, 3, 4]

3、-=

和原来的值相减并重新赋值给自己。

a = 11a-= 10

print(a)#================> 1

4、*=

和原来的值相乘并重新赋值给自己。

a = 2a*= 5

print(a)#====================> 10

5、/=

和原来的值相除并重新赋值给自己。

a = 10a/= 2

print(a)#========================> 5.0

6、%=

和原来的值取模并重新赋值给自己。

a = 11a%= 2

print(a)#======================> 1

7、//=

和原来的值取整并重新赋值给自己。

a = 11a//= 2

print(a)#==================> 5

8、**=

和原来的值进行幂运算并重新赋值给自己。

a = 10a**= 2

print(a)#===================> 100

逻辑运算符

print的逻辑运算符有3个,分别是 and、or和not。

1、and

对应布尔"与" , 如果 左边 为 False,返回 False,否则它返回 右边 的计算值。

#注:0的布尔值为False,其他数的布尔值为True

x1 = 9y1= 10x2=0

y2= 12 + 23x3=True

y3= 12 + 10

print(x1 andy1)#=====================> 10

print(x2 andy2)#=====================> 0

print(x3 andy3)#=====================> 22

2、or

对应布尔"或" ,如果 左边为True,它返回 左边 的值,否则它返回 右边 的计算值。

x1 = 9y1= 10x2=False

y2= 12 + 10

print(x1 ory1)#====================> 9

print(x2 ory2)#====================> 22

3、not

对应布尔"非" ,如果 为 True,返回 False 。如果为 False,它返回 True。

a = 1b=0print(nota)#=====================> False

print(notb)#=====================> True

位运算符

按位运算符是把数字看作二进制来进行计算的。python的位运算符有 &   |    ^    ~    <> ,一共6个。关于运算方式请看 按位与、或、异或等运算方法。

1、&

按位与运算符,参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

a = 3  # 0b11b= 5  # 0b101

print(a &b)#==================> 1

2、|

按位或运算符,只要对应的二个二进位有一个为1时,结果位就为1。

a = 3b= 5

print(a |b)#==============> 7    # 0b111

3、^

按位异或运算符,当两对应的二进位相异时,结果为1。

a = 3b= 5

print(a ^b)#==============> 6    # 0b110

4、~

按位取反运算符,对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1。

a = 3

print(~a)#===============> -4 # -0b100

5、<<

左移动运算符:运算数的各二进位全部左移若干位,由 <

a = 3

print(a << 2)

#==================> 12 #0b1100

6、>>

右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数。

a = 10 #0b1010

print(a >> 2)#===============> 2 # 0b10

成员运算符

成员运算符由于判断成员与序列的包含关系,序列包含字符串、元祖、列表、字典等。成员运算符有两个 : in 和 not in

1、in

如果在指定的序列中找到值返回 True,否则返回 False。

msg = "hello world"name_tuple= ("Alex", "Jack", "Iain",)

name_list= ["Alex", "Jack", "Iain"]

info_dic={"name": "Jack","age": 20}print("e" inmsg)#==========> Ture

print("William" inname_tuple)#==========> False

print("Alex" inname_tuple)#==========> True

print("name" in info_dic) #序列为字典时判断的是键是否在序列中#==========> True

2、not in

如果在指定的序列中没有找到值返回 True,否则返回 False。

msg = "hello world"name_tuple= ("Alex", "Jack", "Iain",)

name_list= ["Alex", "Jack", "Iain"]

info_dic={"name": "Jack","age": 20}print("e" not inmsg)#====================> False

print("William" not inname_tuple)#====================> True

print("Alex" not inname_tuple)#====================> False

print("name" not ininfo_dic)#====================> False

身份运算符

身份运算符用于比较两个对象的存储单元(通常比较对象的ID),Python的身份运算符有2个:is 和 not is

1、is

is 是判断两个标识符是不是引用自一个对象,如果引用的是同一个对象则返回 True,否则返回 False

a = "Jack"b= "Jack"

print(id(a))#==================>2294321321136

print(id(b))#==================> 2294321321136

print(a isb)#==================> True

2、is not

判断两个标识符是不是引用自不同对象,如果引用的不是同一个对象则返回结果 True,否则返回 False。

a = "Jack"b= "Jack"c= 12

print(id(a))#================> 1464669902000

print(id(b))#================> 1464669902000

print(id(c))#================> 140725329687136

print(a is notb)#================> False

print(a is notc)#================> True

运算符优先级

python有这么多的运算符,当多个运算符一起使用时就会有一定的优先级。一般情况下,运算符优先级表决定了哪个运算符在别的运算符之前计算。但是,如果你想要改变它们默认计算顺序,你得使用圆括号。例如,你想要在一个表达式中让加法在乘法之前计算,那么你就得写成类似(10 + 20) * 2的样子。

其优先级顺序如下表所示:

序号运算符描述

1

**

指数(次幂)运算

2

~ + -

补码,一元加减(最后两个的方法名称是+@和-@)

3

* / % //

乘法,除法,模数和地板除

4

+ -

5

>> <<

向右和向左位移

6

&

按位与

7

^

按位异或和常规的“OR”

8

<= < > >=

比较运算符

9

<> == !=

等于运算符

10

= %= /= //= -= += *= **=

赋值运算符

11

is is not

身份运算符

12

in not in

成员运算符

13

not or and

逻辑运算符

注:更多关于运算符的信息可以点击运算符重构。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值