0


Python 让代码更简洁的方法(一), 条件表达式(三元运算符)

前言:

Python使用缩进来标识语句块, 来表明代码之间的逻辑层级关系, 但有时候一些简单的代码逻辑确写了好几行, 代码看起来既不简洁也不优雅.

其实Python提供了更贴近自然语言的语法, 可以写出更高可读性的代码.

相关文章: 【列表表达式】【海象运算符】

1. 条件表达式(三元运算符)

日常编写代码时, if条件语句应该是使用最频繁的了, 但是当条件语句之后的代码相当简短的时候, Python代码会变得很丑

1.1 ☹️丑陋的写法

if a > b:
    m = a
else:
    m = b

1.2 😃条件表达式

语法如下, 将if 和else写到一行, 先执行condition_expr, 若执行结果为True则执行 expr1, 执行结果为False则执行expr2

将1.1 中的代码使用条件表达式写法如下:

m = a if a < b else b

1.3 🙄两种花里胡哨的写法

利用Python中的一些特性, 也可以实现三元操作符的结果, 但是牺牲了可读性, 更偏向炫技, 不建议在代码中使用, 这里也做一个介绍.

一种方式是利用列表list中定位元素的一个特性,

list[ True ] == list[ 1 ],

list[ False ] == list[ 0 ]

In [1]: data = [1,2,3,4,5]

In [2]: data[True]
Out[2]: 2
In [3]: data[False]
Out[3]: 1

将condition_expr放到[]中,执行结果为 False 则定位到 val1, 执行结果为 True 则定位到val2

将1.1 中的代码使用列表实现写法如下:

In [1]: a, b = 3, 5
In [2]: m = [a, b][a > b]   # 即, m = [a, b][False]
In [3]: m
Out[3]: 3

第二种方式是利用逻辑运算表达式 and 和 or , 例如语句

expr1 and expr2

只有expr1 返回为True的时候, 才会执行expr2.

expr1返回False的之后, expr2不会执行

expr1 or expr2

只有expr1 返回为False的时候, 才会执行expr2.

expr1返回True的之后, expr2不会执行

将1.1 中的代码使用条件表达式写法如下:

 m = a<b and a or b

总结:

if ... else ... 语句中, 如果条件分支中的代码较少, 如赋值操作语句, 优先使用条件表达式完成

花里呼哨不可取, 会对代码的可读性带来挑战

标签: 技术分享

本文转载自: https://blog.csdn.net/be5yond/article/details/119243956
版权归原作者 be5yond 所有, 如有侵权,请联系我们删除。

“Python 让代码更简洁的方法(一), 条件表达式(三元运算符)”的评论:

还没有评论