python 三元表达式嵌套,python循环嵌套三角形
相信Python的三元形式可以交到学过Python的朋友。但是,几乎所有学python的朋友都不知道三元形式是可以嵌套的。
请参见代码示例:
cmp=lambdaa,b:0i fa==belse 1 fab else-1
打印(CMP (3 3,2))
印刷(CMP) 2,3))
打印(CMP(2 ^ 2,2))))。
出局:1
-1
0
上面代码的作用是比较两个数,如果第一个数等于第二个数就返回0。如果第一个数字大于第二个数字,则返回1。如果第一个数字小于第二个数字,则返回-1。
直视是无知吗?分一下,改一下写法,就变得好懂了。
deFCMP2(a,b):
ifa==b:
返回0
否则:
ifab:
1次返回
否则:
返回-1
打印(CMP 2 (3,2))))。
打印(CMP2) 2) 2,3))
打印(CMP2) 2) 2,2))
出局:1
-1
0
可见上面两个函数的作用是一模一样的,第一种写法是多么简洁啊!
为了更熟悉这种写法,更容易理解,增加了括号:
0IFA==belse(1ifabelse-1)).
该语句是三元表达式嵌套的三元表达式的结构,从左到右计算。
式三先找if,找if判断a==b(判断元素)。
如果满足这个条件,则返回If左边的0(结果元素1)作为整个表达式的运算结果。
如果不满足判断条件,则返回判断条件右侧的三元公式(结果元素2)。
还是右边的三元公式,继续计算三元公式,找到if判断ab(判断元素):
如果满足这个条件,则返回If左边的1(结果元素1)作为整个表达式的运算结果。
如果不满足判断条件,则返回判断条件右侧的-1(结果元素2)作为整个公式的运算结果。
Python的三元表达式非常灵活。从上面的情况可以了解到,三元表达式的结果元素可以是三元表达式。也就是说,三元表达式可以嵌套使用三元表达式。
知道三元公式中嵌套的三元公式的结构并不容易。如果你精通,代码会更简洁。在三元公式中嵌套三元公式比使用if else if else要高很多,让人觉得想笑。
【编辑推荐】
[责任编辑:魏丽艳电话:(010) 68476606]
叶昊0
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。