三元运算符
本文正在参加「Python主题月」,详情查看活动链接
三元运算符在 Python 中通常称为条件表达式。这些运算符根据条件为真与否来评估某些内容。
方法一:if else
格式
1 if True else 2 # 条件成立为1, 不成立为2
示例:
abc = True
state = 1 if abc else 2
print(state)
>>> 1
它允许快速测试条件而不是多行 if 语句。很多时候它非常有用,可以使您的代码紧凑但仍可维护。
方法二:(a,b)[True]
另一个更方便且未广泛使用的示例涉及元组。下面是一些示例代码:
格式:
(is_false, is_true)[test] # test等于True就输出is_true,为False就输出is_false
例子:
nice = True
personality = ("mean", "nice")[nice]
print(personality)
>>> nice
这很简单,因为 True == 1 和 False == 0,因此除了元组之外还可以使用列表来完成。
上面的例子并没有被广泛使用,因为容易混淆元组中将真值放在哪里和将假值放在哪里。
避免使用元组三元组的另一个原因是它会导致计算元组的两个元素,而 if-else 三元运算符则不会。
例子:
condition = True
print(2 if condition else 1/0)
>>> 2
print((1/0, 2)[condition])
>>> ZeroDivisionError: division by zero
发生这种情况是因为使用元组三元技术,首先构建元组,然后找到索引。对于 if-else 三元运算符,它遵循正常的 if-else 逻辑树。因此,如果一种情况可以根据条件引发异常,或者如果任何一种情况都是计算量大的方法,最好避免使用元组。
方法三:速记三元
在 python 中还有速记三元标签,它是您在上面看到的普通三元运算符的较短版本。
例子
>>> True or "Some"
True
>>>
>>> False or "Some"
'Some'
第一个语句(True 或“Some”)将返回True,第二个语句(False 或“Some”)将返回Some。
如果您想快速检查函数的输出并在输出为空时给出有用的消息,这将很有帮助:
>>> output = None
>>> msg = output or "No data returned"
>>> print(msg)
No data returned
或者作为一种使用动态默认值定义函数参数的简单方法:
>>> def my_function(real_name, optional_display_name=None):
>>> optional_display_name = optional_display_name or real_name
>>> print(optional_display_name)
>>> my_function("John")
John
>>> my_function("Mike", "anonymous123")
anonymous123