鱼C论坛

 找回密码
 立即注册
查看: 1668|回复: 0

[技术交流] python 中if-else的多种简洁的写法(详细版)

[复制链接]
发表于 2022-3-30 15:10:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 leafu 于 2022-3-30 15:10 编辑

if-else简洁的写法,目前看到的有4种:
1、普通写法
------要点:了解if-else基本用法
------实例:
a, b, c = 1, 2, 3
if a>b:
    c = a
else:
    c = b
2、一行表达式
------要点:了解if-else一行表达式规则,(条件为真时执行的内容) if (判断条件) (条件为假时执行的内容)
------实例:c = a if a>b else b
------解析:如果a>b为真,返回a,如果为假,执行else b,最终返回b
3、二维列表模式,利用大小判断的布尔值当作索引
------要点:bool实际上是int一个子类。就像每个数字都是布尔值一样,每个布尔值都是一个整数。int(True)=1,int(False)=0。所以使用a[True]时,实际与a[1]一样。
------实例:c= [b, a][a > b]
------解析:首先[b, a]创建了一个列表,[a > b]结果为False,即c= [b, a][False]等价于c= [b, a][0],最终返回b
4、 利用逻辑运算符进行操作
------要点:
        and:布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
        or:布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。
        not:布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
------实例1:c = (a>b and [a] or [b])[0]
------实例2:c = a>b and a or b
------解析
        1、c = (a>b and [a] or [b])[0],先执行括号内内容(a>b and [a] or [b]),从左到右,a>b为假,则a>b and [a] 返回False,False or [b],第一个值为假,返回 [b]的计算值,即 [b],最终 [b][0],返回b
        2、c = a>b and a or b,与上面大同小异,a>b为假,则a>b and a 返回False,False or b,第一个值为假,返回 b的计算值,即 b。与实例1相比,少了列表计算,是一个优化。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 13:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表