在 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 中制作相同的内容?
这对于在大型和深层递归方法中包装“详细”消息是必要的。我可以通过函数包装它或使用两行,如:
if Verbose:
print "Verbose mode"
但这看起来太难看了。
答案 0 :(得分:3)
Python允许您在一行上拥有if
和保护语句:
if verbose: print('verbose')
作为一种风格,PEP 8不鼓励这样做;但是Python仍然允许它(并将永远:-)而且当保护语句很短且结构化时(例如break
,continue
和& c)
答案 1 :(得分:2)
正如所指出的,你可以将if和print放在一行上 但只是为了完整性和可怕的python短路使用,你可以写:
verbose = True
verbose and print("Verbose mode")
但这很难看。 你甚至可以实现相当于你的bash声明
verbose and not print("Verbose mode") or print("Silent mode")
但这更加丑陋:)
答案 2 :(得分:2)
其他答案已涵盖
if verbose: print 'Verbose'
但是对于需要else
的中间示例,您可以使用三元
print 'Verbose' if verbose else 'Silent'
虽然这样的风格优点是......有问题的