码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-09-25 20:23:03      阅读:190      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!