零基础学Python2——Python运算符(算术运算符,比较运算符,赋值运算符,逻辑运算符,位运算符,成员运算符,身份运算符,三目运算符)

一.算数运算符

运算符描述
+
-
*
/
%返回除法的余数
**幂次
//返回商的整数部分


1.'+'为加法运算符:

2.'-'为减法运算符:

3.'*'为乘法运算符: 

4.'/'为除法运算符(返回值类型为float):

 5.'%'为返回除法的余数:

6.'**'为幂次运算符:

 7.'//'为返回商的整数部分(注意python中取整的规则为向下取整):

 

 8.如果想要同时得到商和余数,可以使用divmod()这个方法,该方法的返回值是tuple(x//y,x%y)

 二.算数运算符

运算符描述
==比较值是否相等
!=比较值是否不相等
>大于
<小于
>=大于等于
<=小于等于

注意:1.int 不能直接与str比较;

           2.python3中不支持<>,但是在python2中<>与!=的作用相同;

           3.==和!=符号不能分开写成= =;

           4.str 与 str 之间比较的是ASCII,并且逐个比较(可以用ord()函数可以查看ASCII值);

           5.最后要知道的是算术运算符的返回值均为bool值,即不是True就是Flase。

           

三.赋值运算符

运算符描述实例
=赋值运算符c = a + b
+=加法赋值运算符c+=a 等效 c = c + a
-=减法赋值运算符c-=a 等效 c = c - a
*=乘法赋值运算符c*=a 等效 c = c * a
/=除法赋值运算符c/=a 等效 c = c / a
%=取余数赋值运算符c%=a 等效 c = c % a
**=幂赋值运算符c**=a 等效 c = c ** a
//=取整值赋值运算符c//=a 等效 c = c // a

注意:1.赋值是将右边的值赋值给等号左边;

           2.python不支持自加,自减等类似的运算,如a++,a--;

           3.符号不能分开写。

四.逻辑运算符

运算符表达式描述
anda and b逻辑与,a与b都为True则返回True
ora or b逻辑或,a与b只要有一个为True则返回True
notnot a逻辑非,当a为True,not a 则为False

1.对于连续比较a>b>c可以写为 a>b and a>c

2.python的短路原则(懒惰原则) 

可以发现打印输出 10 and 20 总是打印后面的20;打印输出10 or 20 时,总是打印前面的10。

五.位运算符(以二进制)

运算符描述
&按位与,两者都为1才为1,否则为0
|按位或,只有一个为1才为1,否则为0
^按位异或,两者相等则为0,否则为1

例子:当a=60,b=13。取二进制。a = 0011 1100 , b = 0000 1101 有:

a & b = 0000 1100

a | b = 0011 1101

a ^ b = 0011 0001

六.成员运算符

运算符描述
in判断某个值是否在指定序列中,在则返回True
not in判断某个值是否在指定序列中,不在则返回True

in 与 not in 是python独有的运算符 (全部为小写字母),用于判断对象是否在某个集合中,非常好用,并且速度很快,返回结果为布尔值类型的 True 或 False。

七.身份运算符

运算符描述
is判断两个对象的内存地址是否一致,是则返回True
is not判断两个对象的内存地址是否不一致,是则返回True

is 与 not is 也是python独有的运算符 (全部为小写字母),这里要注意 is 与 == 之间的区别,

is 用于判断两个变量的引用是否为同一个内存地址(可以用id()函数查看);

== 用于判断两个变量的值是否相等。

最后在这里我们可以注意到a与b的地址相等,与前两个又有着不同,在这里我想说的是:跟Java一样, 为提高内存利用效率, Python 解释器在运行程序时会建立一个共享对象池, 将常用的小整数(不大于256)都放在这个池子里.创建不大于256的整数对象时, 直接从池子里面取, 而不是分配新的内存空间创建新的对象.所以对于不大于256的整数, 相同值的整数对象其内存地址都一样。


八.三目运算符

 表达方法: True_statements(条件成立执行) if expression (条件) else False_statements (条件不成立执行)

即将判断语句写在了一行里,注意python中的三目运算符与c语言或java中的还有些许不同,不能以 a>b ? a:b 的形式去写。

九.运算符的优先级

下表列出了从最高到最低优先级的所有运算符(除去了二进制的位运算符)。优先级高的运算符优先计算或处理。同级别的运算符按从左到右的顺序计算(赋值运算符除外,它是按从右向左的)。

运算符描述
**指数(最高优先级)
*  /  %  //乘  除   取余   整除
+  -加    减
<=   <   >   >=比较运算符
==    !=比较运算符
=  %=  /=   //=   -=   +=   *=     **=赋值运算符
is    is not身份运算符
in    in ont成员运算符
not   or    and逻辑运算符


版权声明:本文为qq_52914337原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。