首页 > 编程语言 > 详细

【Python技巧系列】条件语句一行实现

时间:2015-09-25 20:22:15      阅读:286      评论:0      收藏:0      [点我收藏+]

发现了一种巧妙的条件语句实现方式:(是在pattern的README中的一个小例子里面看到的)

1 1 if A < 1:
2 2     B
3 3 else:
4 4     C
5 5 
6 6 ###can be transformed to
7 7 
8 8 A < 1 and B or C
9 9  

得益于python灵活的格式转换,  and, or 这些逻辑符号我一直认为计算得到的是布尔值,只能用在判断语句中,比如:

 1 if 1 and 2:
 2     print 1
 3 
 4 >> 1
 5 
 6 
 7 a = 1
 8 b = 1
 9 
10 if a == 1 and b == 1:
11     print 1
12 
13 >> 1

然而当把表达式单独计算时,比如这样:

1 >> True and 1
2 >> 1

因此得到的结果并非默认为布尔值,布尔值的转换不是在逻辑符号处进行,而是在遇见了条件选择符号 if, else, elif 后进行。

同样的,有

1 >> False and 2
2 >> False
3 
4 >> False or 2 
5 >> 2 

 

 

技术分享

对更多条件分支的情况,可类似地实现,比如上面的二叉树:

1 #reach the node b = 0
2 >> a = 0
3 >> b = 0
4 >> a == 1 and 1 or b == 1 and 1 or 0
5 >> 0

 

【Python技巧系列】条件语句一行实现

原文:http://www.cnblogs.com/manqing/p/4839007.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!