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

1 in与not in运算符

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

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

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

2 is与is not运算符

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

>>> i1 = 1>>> i2 = 2>>> i3 = 1>>> i1 is i3True>>> i1 is not i2True

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

3 链式比较

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

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

其中,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>1True>>> i<0 and j>1False

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

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

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

>>> 0 or 11>>> 1 and 00

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

>>> 1 or 01>>> 0 and 10

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

7 海象运算符

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

>>> (a:=2)>1 and (b:=3)>aTrue>>> a2>>> b3

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

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

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

a:=2SyntaxError: invalid syntax

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

Python中的条件表达式相关推荐

  1. Python中的Lambda表达式

    Lambda表达式 (Lambda Expressions) Lambda Expressions are ideally used when we need to do something simp ...

  2. Python中的条件选择和循环语句

    Python中的条件选择和循环语句 同C语言.Java一样,Python中也存在条件选择和循环语句,其风格和C语言.java的很类似,但是在写法和用法上还是有一些区别.今天就让我们一起来了解一下. 一 ...

  3. latex中if语句怎么用_如果 (If) | Python 中的条件控制语句详解

    点击上方"可乐python说"关注公众号,点击右上角 "..."选择"设为星标"第一时间获取最新分享! 前言 Hi,大家好,我是可乐,生活中 ...

  4. 在Java语言的if语句是什么表达式,if语句中的条件表达式中只能使用

    if语句中的条件表达式中只能使用关系或逻辑表达式吗?别的人十句话都不会伤到小编,但你的一句话就可以把小编伤得撕心裂肺. 不是,可以用任意表达式. if语句是指编程语言(包括c语言,C#,,java,V ...

  5. 在 if...elif...else 的多个语句块中只会执行一个语句块?_如果 (If) | Python 中的条件控制语句详解...

    点击上方"可乐python说"关注公众号,点击右上角 "..."选择"设为星标"第一时间获取最新分享! 前言 Hi,大家好,我是可乐,生活中 ...

  6. Python中的条件语句

    Python中的条件语句是通过一条或多条语句的执行结果(True或者False)来决定要执行的代码块.主要通过if关键字实现,条件中的其他分支用else. 回到以前读书的时候经常用到的一个例子:给学生 ...

  7. python中的Lambda表达式/函数

    Explanation: 说明: In python, there is a function named Lambda. Lambda function is an anonymous functi ...

  8. python当作为条件表达式时_2019知到Python程序设计基础(山东联盟)结课测验答案...

    这里是题目,答案在助课宝APP可以查看 [判断题]作为条件表达式时,{}等价于False. [判断题]Python支持复数以及相关的运算. [判断题]在字符串前面加上字母r表示原始字符串,其中的任何字 ...

  9. 一文弄懂Python中的Lambda表达式

    1. 引言 不管大家是Python新手还是老手 ,一定都听说过Lambda 函数.它的语法简单而且用起来相当方便. 本文主要是介绍Python lambda 函数的,为了阅读方便,分为以下 3 个部分 ...

最新文章

  1. python代码大全o-Python简单I/O操作示例
  2. Centos7安装docker与docker-compose
  3. 用Kotlin开发android平台语音识别,语义理解应用(olamisdk)
  4. 【NLP】NLP 语义匹配:经典前沿方案整理
  5. js 格式化日期 (/Date(1400046388387)/)
  6. mysql 列目录_Linux ls命令:查看目录下文件
  7. SAP Marketing Cloud功能简述(一)Contacts和Profiles
  8. 中小型园区网络的基本部署之动手划分vlan
  9. 阻止xap文件在浏览器中缓存
  10. SSM 整合开发初见面
  11. 使用SQL Agent和SignalR的每日提醒
  12. 744..寻找比目标字母大的最小字母(力扣leetcode) 博主可答疑该问题
  13. 2.8.13 hadoop体系之离线计算-HBase数据库-HBase的优化
  14. 安装Selenium+Firefox+Firepath+Firebug
  15. 电风扇标准集合(BS/EN/IEC/UL) - 安规+性能
  16. CAD参数绘制直线(网页版)
  17. 迅雷领航 WPF/E?---电影预览功能
  18. 【后台弹窗】应用跳转直通车--通知栏通知跳转后台应用
  19. 【好用的办公软件】万彩办公大师教程丨标准安装版/绿色免安装版/离线版区别
  20. 微信点餐小程序怎么做?微信小程序点餐系统制作

热门文章

  1. 小程序视频截gif_3个简单的应用程序,可让您深入视频和GIF
  2. 根据gff/gtf等注释文件取负链上的序列:先反向互补染色体再截取?还是先截取区间再反向互补序列?
  3. 抖音创始人:我面试了两千个年轻人,发现混的好的都有这5种特质
  4. 安卓期末复习——题库(一)
  5. 【无线芯片解读】LORA专题:SX1276
  6. 缓冲区、着色器和HLSL
  7. 阿里云发送手机短信 (呆瓜教学)
  8. linux命令连接符
  9. tny278功能参数_TNY278开关电源芯片为什么经常被损坏
  10. Unity3D游戏制作(三)——移动平台上的角色阴影制作