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

发现了一种巧妙的条件语句实现方式:(是在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

 

转载于:https://www.cnblogs.com/manqing/p/4839007.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值