3.16 Python三目运算符-程序员宅基地

技术标签: python  开发语言  

Python三目运算符(三元运算符)用法详解

我们从一个具体的例子切入本节内容。假设现在有两个数字,我们希望获得其中较大的一个,那么可以使用 if else 语句,例如:

if a>b:
    max = a;
else:
    max = b;

但是Python提供了一种更加简洁的写法,如下所示:

max = a if a>b else b

这是一种类似于其它编程语言中三目运算符? :的写法。Python 是一种极简主义的编程语言,它没有引入? :这个新的运算符,而是使用已有的 if else 关键字来实现相同的功能。

使用 if else 实现三目运算符(条件运算符)的格式如下:

exp1 if contion else exp2

condition 是判断条件,exp1 和 exp2 是两个表达式。如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。

前面的语句max = a if a>b else b的含义是:

  • 如果 a>b 成立,就把 a 作为整个表达式的值,并赋给变量 max;
  • 如果 a> b 不成立,就把 b 作为整个表达式的值,并赋给变量 max。
三目运算符的嵌套

Python 三目运算符支持嵌套,如此可以构成更加复杂的表达式。在嵌套时需要注意 if 和 else 的配对,例如:

a if a>b else c if c>d else d

应该理解为:

a if a>b else ( c if c>d else d )

【实例】使用 Python 三目运算符判断两个数字的关系:

a = int( input("Input a: ") )
b = int( input("Input b: ") )
print("a大于b") if a>b else ( print("a小于b") if a<b else print("a等于b") )

可能的运行结果:

Input a: 45
Input b: 100
a小于b

该程序是一个嵌套的三目运算符。程序先对 a>b 求值,如果该表达式为 True,程序就返回执行第一个表达式 print(“a大于b”),否则将继续执行 else 后面的内容,也就是:

( print("a小于b") if a<b else print("a等于b") )

进入该表达式后,先判断 a<b 是否成立,如果 a<b 的结果为 True,将执行 print(“a小于b”),否则执行 print(“a等于b”)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qwy715229258163/article/details/137891603

智能推荐

Linux学习笔记(atime、mtime、ctime)_linux mtime-程序员宅基地

文章浏览阅读207次。ls -l命令查看的时间是文件最后的修改时间。改变时间:ctime:文件属性,比如权限。删除时间:dtime:文件被删除的时间。访问时间:atime:查看内容。修改时间:mtime:修改内容。_linux mtime

【贪心】【Uva11292】 勇者斗恶龙_勇者斗恶龙csdn-程序员宅基地

文章浏览阅读2.3k次。直接用白书上的翻译吧例题1 勇者斗恶龙(The Dragon of Loowater, UVa 11292)你的王国里有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉恶龙一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头(且不能被雇佣两次)。_勇者斗恶龙csdn

In-Sight Explorer 仿真器无法正常启动与连接问题解决过程-程序员宅基地

文章浏览阅读2.5k次。In-Sight Explorer 仿真器无法正常启动与连接问题解决过程一、问题出现经过在某天突然报错查不到问题所在偶然间发现这个二、问题解决过程1.首先查看下自己的端口占用情况2. 再查看下自己默认动态的端口区段3. 修改端口区段中动态端口配置5. 重启电脑后生效并检查6. 重新打开In-Sight软件的仿真器OK三、总结一、问题出现经过在某天突然报错一段时间没打开In-Sight IDE软件了,突然有天打开发现这个IDE软件启动报错:服务端口1096端口…查不到问题所在显然是端口占用问题,但通_in-sight explorer

【密评】商用密码应用安全性评估从业人员考核题库(三)-程序员宅基地

文章浏览阅读2.3k次。多项选择题 按照《关键信息基础设施安全保护条例》,某商用密码服务机构的信息系统被依法认定为关键信息基础设施,在日常安全审计中,发现该信息系统近日来遭受持续的APT攻击,导致了大量商用密码业务数据的泄露,信息系统所在机构立即采取了相应的应急处置措施,但为了减少对于自身信誉的影响,选择不向主管部门报告,针对该行为,下列表述正确的是( )。单项选择题 根据密码分析者所掌握的分析资料的不同,密码分析一般可为四类:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击,其中()是在公开的网络中能获得的最现实的能力。

fatal: destination path '.' already exists and is not an empty directory. 错误及解决办法_c:\users\prl\desktop\thicknessvaries' already exis-程序员宅基地

文章浏览阅读10w+次,点赞16次,收藏17次。今天在使用Git for Windows clone代码时,遇到了题目所示的错误,简单来说就是目标路径‘.’已经存在并且不是一个空目录。可是在我在文件夹下并没有看到任何文件,显示“该文件夹为空”,然后自然而然地,我想到了这个'.'路径是不是被Windows隐藏了?于是我打开工具->文件夹选项->查看->显示隐藏文件,终于发现了隐藏文件夹“.git”。删掉该文件夹后,再次执行git cl_c:\users\prl\desktop\thicknessvaries' already exists and is not an empty dir

python处理表格数据-60万行的Excel数据,Python轻松处理-程序员宅基地

文章浏览阅读507次。原标题:60万行的Excel数据,Python轻松处理一个朋友在某运动品牌公司上班,老板给他布置了一个处理客户订单数据的任务。要求是根据订单时间和客户id判断生成四个新的数据:1、记录该客户是第几次光顾2、上一次的日期时间是什么时候3、与上次订单的间隔时间4、这是一个existing客户还是一个new客户(见定义)推荐下我自己创建的Python学习交流群960410445,这是Python学习交流..._python 逐条存储表格数据

随便推点

【Verilog】马里奥小游戏的FPGA实现_verilog 小游戏-程序员宅基地

文章浏览阅读6k次,点赞18次,收藏89次。经典马里奥小游戏新年好!祝各位朋友新年快乐!!健康平安!!!代码有部分删减,不影响理解。演示视频.具体过程:按下十字按键的中央按键开始游戏。碰到柱子边界游戏结束。累计平安通过一定数量的柱子障碍,获得积分奖励,可选择继续游戏,失败则成绩全部清零;或直接结束游戏,并存档游戏进度。具体代码片段:`timescale 1ns / 1psmodule project_..._verilog 小游戏

软件设计模式初了解_对软件设计模式的认识-程序员宅基地

文章浏览阅读173次。软件设计模式一、软件设计模式的产生背景1、设计模式出处设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行_对软件设计模式的认识

无问西东_粗布衣茅草房 铁骨铮铮-程序员宅基地

文章浏览阅读176次。梅贻琦对吴岭澜说:“人把自己置身于忙碌当中,有一种麻木的踏实,但丧失了真实,你的青春也不过只有这些日子。  什么是真实?  你看到什么,听到什么,做什么,和谁在一起  有一种,从心灵深处,满溢出来的不懊悔,也不羞耻的平和与喜悦。”1分24秒旋律的突变,配合电影中一群来路不明战机的出现,看的时候心立即就揪起来了,以为光耀遇到了敌机埋伏,旋律再次回归正常,看到了光耀队友们战机向贫民窟的孩子们投..._粗布衣茅草房 铁骨铮铮

云计算(五)——Mapreduce 的使用_mapreduce使用-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏10次。一、Mapreduce 计算整数的最大值和最小值【实验目的】1)理解mapreduce执行原理2)理解map,reduce阶段3)函数的使用【实验原理】需求描述:对输入文件中数据进行计算找出这一组数据中的最大值和最小值。原始数据:1021039109200..._mapreduce使用

尚硅谷React实战项目踩坑记录_bundle.js:305982 warning: react does not recognize-程序员宅基地

文章浏览阅读1.7k次,点赞4次,收藏17次。本次实战项目素材来自尚硅谷的React全展现全栈,项目内容是使用react + antd的方式开发后台管理系统,本文在这里记录一下开发时踩到的小坑以及解决方案,希望能对你有帮助!_bundle.js:305982 warning: react does not recognize the `eventkey` prop on a

计算机网络思科参考答案--IP 编址考试_哪一项是 ipv6 地址 2002:0420:00c4:1008:0025:0190:0000:09-程序员宅基地

文章浏览阅读4.5w次,点赞42次,收藏286次。请参见图示。 管理员必须向路由器 A 网络中的所有成员发送一条消息。 那么网络 172.16.16.0/22 的广播地址是什么?172.16.23.255172.16.255.255172.16.16.255172.16.20.255 172.16.19.255请参见图示。 思考一下 10.16.10.0/24 网络范围内已经使用了的地址和必须保留的地址,下列哪个子网地址可以分配给包含 25 台主机的网络?10.16.10.240/2810.16.10.12..._哪一项是 ipv6 地址 2002:0420:00c4:1008:0025:0190:0000:0990 的简写格式?

推荐文章

热门文章

相关标签