python 中的一行条件构造

One line Conditional constructs in python

javascript 中,我可以制作单行条件构造,例如:

var Verbose = true; // false
if ( Verbose ) console.log("Verbose mode");

在 shell 脚本 ( bash 中,我可以制作单行条件构造,例如:

Verbose=false # true
[ $Verbose == true ] && echo "Verbose mode" || echo "Silent mode"

如何在 python 中制作相同的内容?

这对于在大而深的递归方法中包装 "verbose" 消息是必需的。我可以按功能包装它或使用两行,例如:

if Verbose:
         print "Verbose mode"

但是这个太丑了

Python 让你在一行中有 if 和保护语句:

if verbose: print('verbose')

从风格上讲,PEP 8 不鼓励这样做;但是 Python 仍然允许它(并且永远:-) 当保护语句简短且结构化时(例如 breakcontinue、&c),我个人并不介意它

如前所述,您可以将 if 和 print 放在一行中。
但只是为了完整和糟糕地使用 python 短路,你可以写:

verbose = True
verbose and print("Verbose mode")

但这很丑陋。 您甚至可以实现相当于 bash 语句

verbose and not print("Verbose mode") or print("Silent mode")

但这更丑:)

其他答案都涵盖了

if verbose: print 'Verbose'

但是对于需要 else 的中间示例,您可以使用三元

print 'Verbose' if verbose else 'Silent'

尽管这种风格的优点……值得怀疑