美文网首页
稚昂长|99%的人都不知道的Python骚操作

稚昂长|99%的人都不知道的Python骚操作

作者: 园长Yzyyz | 来源:发表于2020-04-18 13:10 被阅读0次
    image

    Python爱好者非常喜欢Python语言中的许多(越来越多)高级功能。在这些人的眼中,可以编写普通开发人员无法理解的高级功能。

    何出此言?

    1. 代码越简洁,逻辑越清晰,出错的可能性就越小。

    2. 在团队合作中,您的代码不仅由您自己维护,而且是减少他人阅读/理解代码逻辑的成本的一个很好的优点。

    3. 简单的代码将只使用最基本的语法糖,复杂的高级功能将具有更多的依赖项(例如语言版本)

    在本文,我将列出我所看到的令人眼花缭乱乱的操作。如果您是Python爱好者,则可以学习一些很酷的代码编写技能,但要学习,希望您能区分两种情况。

    注意:无论您是寻找工作还是Python爱好,请记住:项目开发经验将永远是核心。所以需要广泛学习、实践。

    原代码

    这是一段非常简单的通过年龄判断一个人是否成年的代码,由于代码行数过多,有些人就不太愿意这样写,因为这体现不出自己多年的 Python 功力。

    
    if age > 18:
    
        return "已成年"
    
    else:
    
        return "未成年"
    
    

    下面列举了六种这段代码的变异写法,种种都精简 ,单独拿出来比较好理解,放在工程代码里,没用过这些学法的人,一定会看得一脸懵,理解了之后,又不经意大呼:wow,还可以这样写?,而后就要开始骂街了:这是给人看的代码? (除了第一种之外)

    第一种

    语法:

    <on_true> if <condition> else <on_false>

    例子

    
    >>> age1 = 20
    
    >>> age2 = 17
    
    >>> 
    
    >>> 
    
    >>> msg1 = "已成年" if age1 > 18 else "未成年"
    
    >>> print msg1
    
    已成年
    
    >>> 
    
    >>> msg2 = "已成年" if age2 > 18 else "未成年"
    
    >>> print msg2
    
    未成年
    
    >>> 
    
    

    第二种

    语法

    <condition> and <on_true> or <on_false>

    例子

    
    >>> msg1 = age1 > 18 and "已成年" or "未成年"
    
    >>> msg2 = "已成年" if age2 > 18 else "未成年"
    
    >>> 
    
    >>> print(msg1)
    
    已成年
    
    >>> 
    
    >>> print(msg2)
    
    未成年
    
    

    第三种

    语法

    (<on_true>, <on_false>)[condition]

    例子

    
    >>> msg1 = ("未成年", "已成年")[age1 > 18]
    
    >>> print(msg1)
    
    已成年
    
    >>> 
    
    >>> 
    
    >>> msg2 = ("未成年", "已成年")[age2 > 18]
    
    >>> print(msg2)
    
    未成年
    
    

    第四种

    语法

    (lambda: <on_false>, lambda:<on_true>)[<condition>]()

    例子

    
    >>> msg1 = (lambda:"未成年", lambda:"已成年")[age1 > 18]()
    
    >>> print(msg1)
    
    已成年
    
    >>> 
    
    >>> msg2 = (lambda:"未成年", lambda:"已成年")[age2 > 18]()
    
    >>> print(msg2)
    
    未成年
    
    

    第五种

    语法:

    {True: <on_true>, False: <on_false>}[<condition>]

    例子:

    
    >>> msg1 = {True: "已成年", False: "未成年"}[age1 > 18]
    
    >>> print(msg1)
    
    已成年
    
    >>> 
    
    >>> msg2 = {True: "已成年", False: "未成年"}[age2 > 18]
    
    >>> print(msg2)
    
    未成年
    
    

    第六种

    语法

    ((<condition>) and (<on_true>,) or (<on_false>,))[0]

    例子

    
    >>> msg1 = ((age1 > 18) and ("已成年",) or ("未成年",))[0]
    
    >>> print(msg1)
    
    已成年
    
    >>> 
    
    >>> msg2 = ((age2 > 18) and ("已成年",) or ("未成年",))[0]
    
    >>> print(msg2)
    
    未成年
    
    

    相关文章

      网友评论

          本文标题:稚昂长|99%的人都不知道的Python骚操作

          本文链接:https://www.haomeiwen.com/subject/jtmvvhtx.html