Python运算符

Python运算符

python中的运算符有算术运算符、赋值运算符、比较运算符、逻辑运算符、成员运算符、身份运算符、位运算符

算数运算符

  • 加法 +
  • 减法 -
  • 乘法 *
  • 除法
    • 单斜杠 / 结果是是浮点型,除不尽,商会有小数
    • 双斜杠 // 结果是整型的,对商会向下取整,<=商且接近商的整数,例如75//74,结果为1
  • 余数 % 
    • 两个数相除,除不尽,会有余数,取余;例如7%5,余数为2,则结果为2
  • 幂数 ** 
    • 比如3**2,就是求3的2次方,结果为9
    • 如果为小数,4**(1/2),对4的开方,结果为2

算数优先级: **  优先于 符号 优先于  *、/、//、%  优先于 加减 

                                提高优先级使用小括号() 括起来

赋值运算符

简单的赋值运算

变量名 = 数据值

将等号右边的表达式计算结果,赋值给左边的变量名

例如:

a = 12

a = 13 + 4

b = 32

a = b // 2

复合赋值运算

结合其他运算符在内的赋值格式,比如    +=、-=、 *=、 /=、//=、%=、**=     

变量名 += 表达式

先计算表达式的结果  在对变量名根据结果进行相应的算术运算,最后把计算结果赋值给变量名

比如:

        a = 2

        a += 3+4  【则先运算3+4,然后计算a+(3+4),最后赋予a值】

        a =  7 + 2

        a = 9

a = 2
a += 3 + 4
print(a) # 输出结果 为 9

赋值表达式(海象运算符)

把某个赋值表达式的结果再赋值给另外一个变量,这种格式称为赋值表达式

在其他语言中,支持 y = (x = 17 % 3)

        解读:先计算x的结果,再把x的值赋值给y

但是这个写法在Python中不支持,在Python中的写法为:

        y = (x := 17 % 3)

这里其实也是同时定义了两个变量,只不过不同于a,b=11,12的是这个赋值表达式在定义变量的时候,某个变量的值参与另外一个变量定义的运算

比较运算符

>  判断前者是否大于后者
>= 判断前者是否大于或者等于后者
<  判断前者是否小于后者
<= 判断前者是否小于或者等于后者
== 判断两者是否相等
!= 判断两者是否不相等

注意: 算术运算符的优先级别高于比较运算符

字符串数据的比较:

本质比较的是字符对应的十进制数据,比较规则是相同位置的字符进行比较,直到比较出结果

逻辑运算符

注意:逻辑运算符的优先级别是低于比较运算符的

 逻辑 与  and

and表示并且的关系,左右两个表达式同时成立,结果才成立

                True and True = True
                True and False = False
                False and False = False
                False and True = False

and的运行机制:

        具有短路原则,如果左边的表达式不成立,则右边的表达式不被执行。

        执行机制是左边表达式成立,结果取决于右边表达式;左边表达式不成立,结果就是左边表达式的值

逻辑 或 or

or 表达或者的关系 ,当两个表达式中有一个成立,结果就是成立

                        True or True = True
                        True or False = True
                        False or True = True
                        False or False = False

or 也具备短路原则 ,执行机制则是左边表达式成立,结果就是左边表达式的;左边表达式不成立,解决取决于右边表达式的值

逻辑 非 not

 对逻辑关系取反,逻辑关系结果为真,not之后设定为假;逻辑结果为假,not之后设定为真

                not True = False
                not False = True

优先级别: not > and > or

成员运算符

 用来判定 某个数据是否是某个容器型数据中的元素 

                数据 in 容器型数据
                    把数据作为一个整体 判断是否在容器中
                数据 not in 容器型数据
                    把数据作为一个整体 判断是否不在容器中

位运算符

& 按位 与 

                位置相同数据 只要有一个是0 该位置的结果为0

|  按位 或

                相同位置的数据,只有有一个是1,该位置的结果为1

^ 按位异或 

                  相同位置的数据一样,该位置位0,否则为1  【相同为0,不同为1】
      一个数与相同的数异或两次结果是数其本身  【交换两个变量的值】

                        示例: a = 10 ,b = 20 

                                a ^ b = 10 ^ 20

                                b ^ a = 20 ^ 10^20  (异或两次,b的值为10)

a = 10
b = 20
a = a ^ b
print(b ^ a)
# 输出结果为10

 ~ 按位取反

                        该位置上的数据0变1,1变0

>> 按位右移
                           将二进制数据向右移动N位,左边空出
                           如果是正数 左边补0
                           如果是负数 左边补1
                               规律:
                                     数值//(2**N)
<< 按位左移
                            将二进制数据向左移动N位,右边空出补0
                                规律:
                                       数值*2**N

原码、反码、补码

运算符都是针对于位(二进制数据中一个0或者一个1称为一位)的

在计算机发展过程中,根据数据计算的发展的一个历程,二进制形态出现过三种:原码/反码/补码。 现在的计算机中存储处理二进制数据的形态是补码

对于正数来说,三码合一,格式是一样的, 原码样子就是将十进制数据按照规则转化为二进制的格式

负数的原码: 在正数的基础上将最高位置为1,则表示这个数据为负数。【二进制的最高位为符号位:0表示正数 1表示负数】【符号位最高位简单说就是左边第一位数】

负数的反码:在负数原码的基础上,除了符号位,0变1,1变0

负数的补码: 在负数反码的基础上加1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值