我是靠谱客的博主 要减肥月饼,最近开发中收集的这篇文章主要介绍Python中的条件表达式1 in与not in运算符2 is与is not运算符3 链式比较4 and、or与not的优先级5 and与or的短路功能6 运算数是非布尔类型的and语句和or语句7 海象运算符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python中,while和if都是条件表达式,条件表达式中的条件语句不仅仅是比较运算符(>、<、==、!=等),还可以是其他运算符。

1 in与not in运算符

in与not in运算符用于判断某个值是否在指定的序列中,代码如下所示。

>>> list1 = [1, 2, 3, 4, 5]
>>> a = 1
>>> b = 6
>>> a in list1
True
>>> b not in list1
True

in和not in这两个运算符返回值是True或者False。

2 is与is not运算符

is与is not运算符判断两个对象是否是同一个对象,代码如下所示:

>>> i1 = 1
>>> i2 = 2
>>> i3 = 1
>>> i1 is i3
True
>>> i1 is not i2
True

is与is not这两个运算符返回值是True或者False。

3 链式比较

Python支持链式比较,代码如下所示:

i1 = 1
i2 = 2
i3 = 3
i3 > i2 > i1
True

其中,i3>i2>i1就是一个链式比较,该表达式等价于i3>i2 and i2>i1。

4 and、or与not的优先级

在Python的and、or与not中,not的优先级最高,其次是and,or的优先级最低,因此,对于表达式A or not B and C,首先计算not B,之后计算(not B)and C,最后再计算A or ((not B)and C)。

5 and与or的短路功能

and与or的短路功能指的是从左向右计算含有and或or的语句的值,一旦语句的值确定,则其后的语句不再计算,如下代码所示。

>>> i = 1
>>> j = 2
>>> i>0 or j>1
True
>>> i<0 and j>1
False

对于or语句,i>0的值是True,此时已经能够计算出该语句的值是True,因此or之后的j>1这个语句不会被计算;同理,对于and语句,i<0的值是False,此时已经能够计算出该语句的值是False,因此and之后的j>1语句不会被计算。

6 运算数是非布尔类型的and语句和or语句

对于运算数是非布尔类型的and语句和or语句,其取值是语句中最后一个计算的值,代码如下所示:

>>> 0 or 1
1
>>> 1 and 0
0

但是,由于在“5 and与or的短路功能”中提到的短路功能,因此,有如下代码

>>> 1 or 0
1
>>> 0 and 1
0

因为and与or具有短路功能,因此对于or语句,1就可以确定该语句的值,因此or语句之后的表达式将不会被计算,1是该语句最后计算的表达式,因此该or语句的值是1;同理,and语句中0就可以确定该语句的值,因此,and语句之后的表达式将不会被计算,0是该语句最后计算的表达式,因此该and语句的值是0。

7 海象运算符

海象运算符是在Python3.8版本引入的,由一个冒号:和一个等号=组成,即:=。

>>> (a:=2)>1 and (b:=3)>a
True
>>> a
2
>>> b
3

在以上and语句中,首先对a和b进行赋值,然后再对这两个变量进行比较。以上代码与如下代码等价。

>>> a = 2
>>> b = 3
>>> a>1 and b>a
True

需要注意的是,海象运算符只能用与>、<、==、!=等条件运算符联合使用,不能单独使用海象运算符。

a:=2
SyntaxError: invalid syntax

此时的报错信息是语法错误。

最后

以上就是要减肥月饼为你收集整理的Python中的条件表达式1 in与not in运算符2 is与is not运算符3 链式比较4 and、or与not的优先级5 and与or的短路功能6 运算数是非布尔类型的and语句和or语句7 海象运算符的全部内容,希望文章能够帮你解决Python中的条件表达式1 in与not in运算符2 is与is not运算符3 链式比较4 and、or与not的优先级5 and与or的短路功能6 运算数是非布尔类型的and语句和or语句7 海象运算符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部