zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    VB获取对象成员
    VB一键扫雷
    VBS代码
    C# LINQ GroupBy
    C# 元组和值元组
    数据结构笔记
    DoTween使用
    Unity中常用的数据结构总结
    Unity 坐标系转换
    .Net中C# Dictionary 用法
  • 原文地址:https://www.cnblogs.com/manqing/p/4839007.html
Copyright © 2011-2022 走看看