Python之三元表达式嵌套三元表达式解析

Python的三元表达式相信学过python的朋友都会。但是大部分学python的朋友不知道的是三元表达式还可以嵌套三元表达式。

博州网站建设公司创新互联建站,博州网站设计制作,有大型网站制作公司丰富经验。已为博州上1000+提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的博州做网站的公司定做!

请看代码案例:

 
 
 
 
  1. cmp = lambda a, b: 0 if a == b else 1 if a > b else -1
  2. print(cmp(3,2))
  3. print(cmp(2,3))
  4. print(cmp(2,2))
  5. out:1
  6. -1
  7. 0

以上代码的功能是对两个数进行比较,若第一个数等于第二个数返回0;若第一个数大于第二个数返回1;若第一个数小于第二个数返回-1。

直接看是不是比较懵?我把它拆分一下,换一种写法,会容易懂得多。

 
 
 
 
  1. def cmp2(a, b):
  2.     if a == b:
  3.         return 0
  4.     else:
  5.         if a > b:
  6.             return 1
  7.         else:
  8.             return -1
  9. print(cmp2(3, 2))
  10. print(cmp2(2, 3))
  11. print(cmp2(2, 2))
  12. out:1
  13. -1
  14. 0

可以看到上述2个函数功能完全一致,第一种写法简洁的多!

再来熟悉一下这种写法,为了便于理解我多加了对括号:

 
 
 
 
  1. 0 if a == b else (1 if a > b else -1)

这种语句是三元表达式嵌套三元表达式的结构,从左向右计算。

三元表达式首先找if,找到if判断a ==b (判断元素):

  • 若该条件满足则返回if左边的0(结果元素1)作为整个表达式的运算结果。
  • 若该判断条件不满足则返回判断条件右边的三元表达式(结果元素2)。

右边仍然是三元表达式,继续计算该三元表达式,找到if判断a>b(判断元素):

  • 若该条件满足则返回if左边的1(结果元素1)作为整个表达式的运算结果。
  • 若该判断条件不满足则返回判断条件右边的-1(结果元素2)作为整个表达式的运算结果。

python的三元表达式非常灵活,从上述案例中可以学习到三元表达式的结果元素可以是三元表达式,也就是说三元表达式可以嵌套三元表达式使用。

三元表达式嵌套三元表达式的结构并不难懂,熟练掌握以后会让你的代码更简洁,用三元表达式嵌套三元表达式感觉比用if else if else瞬间高大上了很多,嘻嘻。

网站题目:Python之三元表达式嵌套三元表达式解析
文章链接:http://www.hantingmc.com/qtweb/news47/237897.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联