Python:通过使用内联条件来缩短串联



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

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

我知道这是不合适的,但我想做的是检查serverIsOnline是否是True,然后打印Status: Online,否则打印Status: Offline。我知道这是可能的,我看过,但我不记得是怎么做的。

这是一个较短的等价物:

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

有人能帮我提神吗?

您要查找的是一个条件表达式(也称为"三元"表达式,通常带有?运算符,被许多其他语言使用)。

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

语法:True if condition else False

只要指定了elseif仅为SyntaxError),Python就允许内联if/else。大多数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

最新更新