注意:python并没有像java等语言得三元表达式,但是提供了相似得实现方法
举个例子(虽然例子有更好得实现方式,但是能够说明问题,不需要太纠结):
a=5b=1if a>=b: c=aelse: c=b print(c) 输出 5
这个例子只是简单得将a和b中较大得赋值给c,并打印出来,这样做显然可以,但是代码先得臃肿,接下来我们用python得三元表达式替代方式实现
a=5b=1c=a if a>=b else b print(c)
这次变量c得赋值过程变得清晰而简单,代码得可读性也大大增加了
通过上面得例子可以看到大致得方案实现方式:
true_part if condition else false_part
如果condition为真,则返回true_part,否则返回false_part
来个更简单易懂得例子:
>>> 'it is true' if True else 'it is false''it is true'>>> 'it is true' if False else 'it is false''it is false'
第二种实现(不推荐):
原型:
condition and [true_part] or [false_part][0]
例:
>>> (True and ['it is true'] or ['it is false'])[0]'it is true'>>> (False and ['it is true'] or ['it is false'])[0]'it is false'
说明:
这里我们将true_part和false_part部分都放到列表中,并且这个列表只有这一个元素,得到结果后又将列表中得true_part或者false_part部分取出来
这么做得原因是如果true_part部分本身就为false,则即使condition为True也不会取出true_part,但是把它放到列表中无论true_part是否为真,列表始终为真,最后再把元素取出来即可
#演示错误用法得到得结果,并不会取出False>>> True and False or 'it is false''it is false'
作者:MR_Hanjc
链接:https://www.jianshu.com/p/a684876595b1