一行条件构造在python中

时间:2015-01-20 03:32:47

标签: python coding-style conditional-statements

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"

但这看起来太难看了。

3 个答案:

答案 0 :(得分:3)

Python允许您在一行上拥有if和保护语句:

if verbose: print('verbose')
作为一种风格,PEP 8不鼓励这样做;但是Python仍然允许它(并将永远:-)而且当保护语句很短且结构化时(例如breakcontinue和& 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'

虽然这样的风格优点是......有问题的