发现了一种巧妙的条件语句实现方式:(是在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
时间: 2024-10-08 20:04:39