python if else的简写

如果是普通的三元,if else 正常的结构让人看到有一些冗余,下面有三种方法:

a, b, c = 1, 2, 3

#第一种    "值1 if 条件 else 值2",把它看成天平的话就非常好记忆了


a, b, c =1, 2, 3
c = a if a>b else b
c
2


#第二种 如果 a>b为False,就拿列表第一个位置a,是Ture,就拿列表的第二位置b    列表第一个位置为list[0],第二个位置

为list[1]

c = [a>b][a, b]

a, b, c =1, 2, 3
c = [a, b][a > b]
print(a, b, c)

#第三种  (c and [a] or [b])[0]  当c为真时走a,当c为假时走b

这个有点吊,之前听说c= a>b and a or b 会由bug,当a为假的时候,会输出b,当把a变成列表形式[a],可以排除这种例外,因为列表有元素a,并不是空列表~

例外如下:

c = ''
a = ''
b = '我是有东西的'
d = c and a or b
print(d)

c = ''
# a = ''
a = '我是由东西的'
b = '我是有东西的'
d = c and a or b
print(d)

输出结果:我是由东西的

也就是a为False,'',None就不行

改成 (c and [a] or [b])[0],可以杜绝列外


  • 14
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值