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

2020-04-18  本文已影响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)

未成年

上一篇 下一篇

猜你喜欢

热点阅读