Python中的运算符介绍(上)

Posted 小博测试成长之路

tags:

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

今天来介绍一下Python中的运算符,运算符主要有以下几类:

  • 算术运算符

  • 比较(关系)运算符

  • 逻辑运算符

  • 赋值运算符

  • 三目运算符

  • 位运算符

  • 成员运算符

  • 身份运算符

接下来,详细的介绍一下运算符的具体操作:

算术运算符

算术运算符用于对整数类型和浮点类型的数据进行相关操作的运算符。

常见的算术运算符以及对应的操作介绍如下图所见:

如果将True/False用于数值的操作运算的时候,会自动转换为1和0去进行计算。

比较运算符

比较运算符主要用于比较两个表达式的大小,对比的返回结果是True或者False。

运算符名称例子说明
>大于a>ba大于b时返回True,否则False
==等于a==ba与b相等时返回True,否则False
<小于a<ba小于b时返回True,否则False
>=大于等于a>=ba大于等于b时返回True,否则False
<=小于等于a<=ba小于b时返回True,否则False
!=不等于a!=ba与b不相等时返回True,否则False

实例演示:

下面考考你

在python中,以下语句执行结果分别是什么呢?print(1.0 == 1)   ==>Trueprint(1 == True)  ==>Trueprint([2,1]>[1])  ==>Trueprint(['1']>[1]])  ==>运行报错

逻辑运算符

逻辑运算符用于对布尔型变量进行运算,其结果也是布尔型。

  • and 与(and两边的值都为True时,返回True)

  • or  或 (or两边的值只要有一个为True时,返回True)

  • not 非,(将true变为false,false变为true)

请看具体案例:

print(True and True)    #Trueprint(True and False)   #Falseprint(False and False)   #False

对于 a or b 来说,如果 a 为真,那么值为 a,否则为 b;对于 a and b 来说,如果 a 为真,那么值为 b,否则为 a。​​​​​​​

print(True or False)    #Trueprint(False or True)   #Trueprint(False or False)   #False​​​​​​​
print(not True)    #Falseprint(not False)   #True

 具体的运行效果如上面脚本所示,要注意的是,像这种逻辑运算符,在运行过程中,采用了类似“短路”的设计,and 和 or操作在运算的时候,如果结果已经确定,就不会再去计算后面的表达式。

比如:True or False ,前面的True已经确定最终返回的结果会为True,就不会再去管or后面去True还是False。总之:and要所有数据都为True才返回True,or只有有一个为True则返回True。

赋值运算符

=是最常见的赋值运算符,比如a=3,就表示将3的值赋值给变量a。其他常见的赋值运算符有:+=、-+、*=、/=、%=、//=、**=等。​​​​​​​

a+=b ==> a=a+ba-=b ==> a=a-ba*=b ==> a=a*b

三目运算符

这个一般用在if判断条件中比较常见,比如,求2个数中的最大值,普通的写法如下:​​​​​​​

if a>b:    max = aelse:    max = b

python中提供了一个简便的写法,代码看上去简洁很多:

max = a if a>b else b

python中通过if else的条件判断,可以实现类似java里面的?:三目运算符。

java里面的用法如下:z = x>y ? x-y : x+y;

python里面用法:value1  if 判断条件  else  value2  

稍微复杂点的写法:​​​​​​​

a if a>b else c if c>d else d等价于:a if a>b else ( c if c>d else d )

 

成员运算符

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

  • not in :制定的序号中没有找到对应的值则返回True,找到则返回False

成员运算符用的还是比较多的,比如查看某个key是不是在某个字典里面时,可以用 key in dict.keys()去判断​​​​​​​

a = {"A": "1", "B": "2"}print('A' in a.keys())print('a'  in 'abcdefg')

身份运算符

is、is not,用来判断两个标识符是否引用的同一个对象​​​​​​​

a1 = 10b1 = 2b1 += 8print(a1 is b1)  #True

s1 = 'abc's2 = '123abc'[3:]print(s1 is s2)  #False
a1 = 1print(a1 is True)   #False​​​​​​​

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

Python代码阅读(第13篇):检测列表中的元素是否都一样

算法笔记:位运算

48个值得掌握的JavaScript代码片段(上)

Python代码阅读(第40篇):通过两个列表生成字典

在PaddlePaddle中的Notebook代码片段

Python测试框架doctest