当前位置: 首页 > 科技观察

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

时间:2023-03-13 06:29:16 科技观察

Python的三元表达式相信学过python的朋友都会知道。但是大部分学习python的朋友不知道的是,三元表达式也可以嵌套三元表达式。请看代码示例:cmp=lambdaa,b:0ifa==belse1ifa>belse-1print(cmp(3,2))print(cmp(2,3))print(cmp(2,2))out:1-10上面代码的作用是比较两个数。如果第一个数等于第二个数,返回0;如果第一个数字大于第二个数字,则返回1;如果第一个数小于第二个数,则返回-1,直接读会不会乱?让我把它拆开,换一种方式写,这样会更容易理解。defcmp2(a,b):ifa==b:return0else:ifa>b:return1else:return-1print(cmp2(3,2))print(cmp2(2,3))print(cmp2(2,2))输出:1-10可以看到上面两个函数的功能是完全一样的,第一种写法简洁多了!我们再熟悉一下这种写法,为了便于理解,我多加了括号:0ifa==belse(1ifa>belse-1)这个语句是三元表达式嵌套三元表达式的结构,从左开始求值向右。三元表达式先求if,求if判断a==b(判断元素):如果满足条件,则返回if左边的0(结果元素1)作为整个表达式的运算结果。如果不满足判断条件,则返回判断条件右边的三元表达式(结果元素2)。右边依然是三元表达式,继续计算三元表达式,找到if判断a>b(判断元素):如果满足条件,则返回if左边的1(结果元素1)作为整个表达式的运算结果。如果不满足判断条件,则返回判断条件右边的-1(结果元素2)作为整个表达式的运算结果。Python的三元表达式非常灵活。从上面的案例我们可以知道,三元表达式的结果元素可以是一个三元表达式,也就是说一个三元表达式可以嵌套在一个三元表达式中。三元表达式嵌套三元表达式的结构并不难理解。掌握好之后,你的代码会更加简洁。用三元表达式嵌套三元表达式感觉瞬间比用ifelseifelse高很多,嘻嘻。