Python:使用内联条件缩短串联

时间:2016-07-27 02:08:55

标签: python python-3.x if-statement printing concatenation

如果标题有点模糊,我想做的一个例子是:

print("Status: " + if serverIsOnline: "Online" else: "Offline")

我知道这是不合适的,但我要做的是检查serverIsOnline是否True然后打印Status: Online其他Status: Offline。我知道这是可能的,我已经看到它完成了,但我不记得它是如何完成的。

这是一个较短的等价物:

if serverIsOnline:
    print("Status: Online")
else:
    print("Status: Offline")

有人可以刷新我吗?

2 个答案:

答案 0 :(得分:3)

您要找的是conditional expression也称为'三元'表达式,通常带有 ? 运算符,被其他许多人使用语言)。

print("Status: " + "Online" if serverIsOnline else "Offline")

语法:True if condition else False

答案 1 :(得分:1)

只要指定if/elseelse只是一个SyntaxError),Python就允许内联if。大多数Python程序员将此称为三元组:

>>> server_online = True
>>> print('Status: ' + ('Online' if server_online else 'Offline'))
Status: Online
>>> server_online = False
>>> print('Status: ' + ('Online' if server_online else 'Offline'))
Status: Offline
>>> print('Status: ' + 'Online' if server_online)
  File "<stdin>", line 1
    print('Status: ' + 'Online' if server_online)
                                                ^
SyntaxError: invalid syntax