05 Python运算符

Posted hardy9sap

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05 Python运算符相关的知识,希望对你有一定的参考价值。

Python运算符:

此图来源于菜鸟教程,更详细参考

http://www.runoob.com/python3/python3-basic-operators.html

技术图片 

说明:

同一优先级的通常从左至右计算(赋值运算符是右至左)

如果想要改变它们的计算顺序,得使用圆括号

 

**:幂运算,可进行开方运算

技术图片

 

~:按位非(取反)

一个简单的公式: – (a + 1)

技术图片

原理:① 将a = 5,用原码表示:00000101

               在计算机中,数值的存储一律用补码,正数的原码就是补码

          ② 取反操作~,0变1,1变0,为:11111010

               取反后,为负数的存储形式,最高位为1,补码(负数要想存储在内存中,要经过取反,加1的操作,最后成为补码)

          ③ 减1,为:11111001

              进行相反操作,减1

         ④ 取反,为:10000110

              符号位不用变

         ⑤ 输出,为:-6

 

      ① 将a = -6,用原码表示:100000110

      ② 取反,为:11111001,反码

      ③ 加1,为:11111010,补码

         -6内存中的存储形式

      ④ 取反操作~,为:00000101

         取反后,已经是一个正数的存储形式,正数的补码与原码一样,所以无须进行减一和取反。

      ⑤ 输出,为:5

 

算术运算符:

  *、/、//、%、+、-、

  Note

    floor除法,x // y

    整除(返回一个不大于x / y的值(向下圆整)),有一个为float,结果为float

          求模运算符 x % y,最后结果的符号与y有关,有一个为float,结果为float

  技术图片

 

 <<>>: 左移,最高位不变,每移一位,结果为,原值 * 2 ** n (n为移动的位数)

                 右移,最高位不变,每移一位,结果为,原值 / 2 ** n (n为移动的位数)

 

&:都为1即为1,否则为0

^:相同即为1,否则为0

|:有一个为1即为1,否则为0

 

比较运算符

  >、>=、<、<=、==、!=

  Note:Python2,!=和<>都可以用;

  Python3,只用!=

 

身份运算符:

  isis not

  意思:判断两个标识符是否引用的同一个对象,返回True和False

             实际上就是判断他们的id,id(a) == id(b)

 

成员运算符:

  innot in

  意思:判断指定成员是否在序列中,返回True和False

  in,  x in iterable意思为:如果x在iterable里面,就返回True,否则,返回False

  not in,  x not in iterable意思为:如果x不在iterable里面,就返回True,否则,返回False

 

逻辑运算符:

  notandor

  not,and,or同时出现,先算(),再not,再and,再or

  not,真即假,假即真;

  and,都为真即真;

  or,有一个为真即真

  Noteand和or,返回的是真或假的表达式

  技术图片

 

以上是关于05 Python运算符的主要内容,如果未能解决你的问题,请参考以下文章

Python05,运算符

python05_运算符优先级

(05)-Python3之--运算符操作

python 开发 -- 05基本运算符

demo05_逻辑运算符

05 基本运算符