软件测试| 教你拿捏 Python 运算符(三)
前言
前面两篇文章我们分别介绍了 Python 的算术运算符、比较运算符合和三目运算符,本篇文章我们来介绍 Python 的逻辑运算符、成员运算符以及身份运算符 。
逻辑运算符
老规矩,先列出逻辑运算符列表
Python 逻辑运算符可以用来操作任何类型的表达式,不管表达式是不是 bool 类型;同时,逻辑运算的结果也不一定是 bool 类型,它也可以是任意类型。
逻辑运算符一般和比较运算符结合使用,例如:
示例代码如下:
成员运算符
成员运算符( in 与 not in)是 Python 独有的运算符(全部都是小写的字母),用于判断对象是否是某个集合的元素之一,非常好用,并且运行速度很快。返回的结果是布尔值类型的 True 或者 False。下面是成员运算符的列表。
示例代码如下:
身份运算符
身份运算符(is、is not)和成员运算符一样,也是 Python 的特色语法。身份运算符用来判断的两个对象的存储单元是否相同的一种运算符号,身份运算符只有 is 和 is not 两个运算符,返回的结果都是 TRUE 或者 FALSE。下面是身份运算符的列表:
示例代码如下:
a、b 这两个变量的储存的内容不一样,所以储存单元肯定不一致,但是 c 和 a 的其实都是 3,这两个变量的存储单元其实是一致的,这个应该比较容易理解。
上方例子若将 is 改为 is not,则输出的结果与上面相反。
若 a,b 都为列表,a=[0,1,2],b=[1-1,2-1,3-1],变量 b 通过运算后得出的列表也是[0,1,2],这很好理解,但是这里我们有两个问题:
a 引用的对象是否跟 b 是一致的呢?
如果 c=a,a 和 c 引用的对象又是否一致呢?
我们运行代码来获取结果:
结果我们发现,a 和 b 引用的对象是不一致的,所以 a is b 输出的结果是 FALSE,因为变量 b 是需要计算的,虽然计算之后得到的列表跟 a 一模一样,但是计算之前的过程每个元素是要存储的,变量 a 当中的元素都是数字,计算机是直接存储结果的,而变量 b 当中的每个元素都是表达式,表达式的储存跟单个元素的储存是不一致的,列表、元组都是如此。(注意:可计算出结果的纯数值表达式仍然是直接储存结果值)
is 与==的区别
双等号是比较运算符,用来判断左右两边的数据是否相等,那么 is 和双等号在应用时是否一样呢?我们还是接着上面的按个例子,如果我们用“==”来判断 a、b、c 三个变量是否相等,代码演示如下:
通过运行结果,我们看到用双等号进行判断是,只要最终的值是一致的用双等号进行比较运算结果就是 TRUE,而 is 则必须引用同一对象返回结果才为 TRUE,否则就是 FALSE,这就是 is 和“==”的区别,使用这两个运算符时不能混淆,因为实现的功能是不一样的。
总结
本篇文章我们介绍了逻辑运算符,成员运算符和身份运算符的使用,我们特别要注意一般情况下,这三种运算符输出的都是 bool 值,我们也要注意==号与 is 的区别。下一篇文章,我们将介绍赋值运算符,位运算符和运算符优先级。
评论